pythonplt.subplot基础与应用

一、图形分区和布局

Python是一种强大的、易用的高级编程语言,自2003年发布以来,一直都在广泛的应用于数值计算、数据分析、科学计算、机器学习等相关领域。在Python的数据可视化中,Matplotlib是最为流行的数据绘图库之一。而其一个重要的功能就是plt.subplot实现的图形分区和布局。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,100)
y = np.sin(x)

plt.subplot(2,2,1)
plt.plot(x,y)
plt.title('subplot(2,2,1)')

plt.subplot(2,2,2)
plt.plot(x,y)
plt.title('subplot(2,2,2)')

plt.subplot(2,2,3)
plt.plot(x,y)
plt.title('subplot(2,2,3)')

plt.subplot(2,2,4)
plt.plot(x,y)
plt.title('subplot(2,2,4)')

plt.show()

上述代码中,plt.subplot函数调用的第一个参数表示分区行数,第二个参数表示分区列数,第三个参数表示当前子图的索引编号。通过这个函数生成的图形,会被平均分割成行数乘以列数份区域,并按照从左到右、从上到下的顺序依次编号。关键的是,我们可以独立对每个子图进行设置,比如设置线条颜色、线条宽度、坐标轴标签等等。此外,也可以在子图上添加其它类型的图形元素,比如标注文本、箭头、网格线等。

二、绘制多个子图

为了绘制多个子图,我们可以使用plt.subplots函数。这个函数可以在一行中同时创建一个或多个子图对象。如果需要创建多行子图,可以使用先前提到的plt.subplot函数。

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi,np.pi,100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, ax = plt.subplots(nrows=2, ncols=1)

ax[0].plot(x, y1, color='b', linewidth=2.5)
ax[0].set_title('sin(x)', fontsize=16)

ax[1].plot(x, y2, color='r', linewidth=2.5)
ax[1].set_title('cos(x)', fontsize=16)

plt.tight_layout()
plt.show()

上述代码中,我们首先使用np.linspace函数生成一组-π到π的等分点,利用np.sin和np.cos函数生成对应的正弦和余弦函数值。然后我们使用plt.subplots函数创建两个子图对象,分别表示plt.subplot函数内第一行和第二行。之后对于每个子图对象,我们分别用ax数组存储并单独对其进行设置。也可以直接调用子图对象属性来设置子图样式,如标题、坐标轴标签等。需要注意的是,在多个子图对象内的元素设置仍然是基于单个Axes对象。如果需要对多个子图对象进行相同设置,也可以使用类似plt.title、plt.xlabel等的plt.XXX风格函数。

三、绘制极坐标图

极坐标图是一种特殊的数据可视化,其中数据点显示在平面内的极坐标系中。而plt.subplot函数同样可以用于创建和显示极坐标图。

import matplotlib.pyplot as plt
import numpy as np

theta = np.linspace(0,2*np.pi,100)
r = np.sin(3*theta)

ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(1)
ax.set_rticks([0.25, 0.5, 0.75, 1])
ax.grid(True)

plt.title("polar plot")
plt.show()

上述代码中,我们首先定义theta和r数组,然后利用plt.subplot函数创建一个极坐标子图对象。为了使得极坐标显示更加美观,我们设置了rmax表示最大距离、rticks表示圆周距离之间的间隔、grid表示圆形网格线等。注意,在使用plt.subplot函数创建极坐标子图时,需要使用projection=’polar’设置投影方式为极坐标。

四、绘制3D图

在某些情况下,我们需要绘制数据点的三维坐标情况,这时候就需要使用3D图像。Matplotlib同样支持3D图绘制,也可以使用plt.subplot函数得到相应的3D子图。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = np.linspace(-5,5,100)
y = np.linspace(-5,5,100)
x,y = np.meshgrid(x,y)
r = np.sqrt(x**2+y**2)
z = np.sin(r)

ax.plot_surface(x, y, z, cmap='rainbow')
ax.set_zlim(-1,1)

plt.title("3D plot")
plt.show()

上述代码中,我们使用np.meshgrid函数生成xy平面上的坐标点数组,计算出对应的r值和z值。然后使用plt.subplot函数创建一个3D子图对象,设置其投影方式为实现3D图像。对于3D图像的制作,我们可以利用Axes3D对象并调用其plot_surface函数绘制空间曲面。需要注意的是,在绘制3D图像时还有一些特殊的方法,比如zlim、xlim、ylim等参数可以用于设置z轴范围和x、y平面范围,其他的参数就和二维图像绘制函数一致。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:11
下一篇 2024-12-12 13:11

相关推荐

  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • 数据结构与算法基础青岛大学PPT解析

    本文将从多个方面对数据结构与算法基础青岛大学PPT进行详细的阐述,包括数据类型、集合类型、排序算法、字符串匹配和动态规划等内容。通过对这些内容的解析,读者可以更好地了解数据结构与算…

    编程 2025-04-29
  • Python零基础PDF下载

    本文将为大家介绍如何使用Python下载PDF文件,适合初学者上手实践。 一、安装必要的库 在Python中,我们需要使用urllib和requests库来获取PDF文件的链接,并…

    编程 2025-04-29
  • 树莓派DIY无人机一:制作基础

    本文将介绍如何使用树莓派制作一个可飞行的小型无人机。本文将介绍树莓派的选型、比例积木的使用、无线电通信以及如何控制飞行器的基本运动。 一、树莓派的选型 在DIY无人机中,树莓派是必…

    编程 2025-04-29
  • Polyphone音频编辑器基础入门教程

    Polyphone是一款免费的音频编辑器,可用于编辑.sf2和.sfz格式的音色库。本文将详细介绍Polyphone的基础操作及使用方法。 一、安装和简介 首先,我们需要下载并安装…

    编程 2025-04-29
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python基础语言

    Python作为一种高级编程语言拥有简洁优雅的语法。在本文中,我们将从多个方面探究Python基础语言的特点以及使用技巧。 一、数据类型 Python基础数据类型包括整数、浮点数、…

    编程 2025-04-28
  • 键值存储(kvs):从基础概念到实战应用

    本文将从基础概念入手,介绍键值存储(kvs)的概念、原理以及实战应用,并给出代码实现。通过阅读本文,您将了解键值存储的优缺点,如何选择最适合的键值存储方案,以及如何使用键值存储解决…

    编程 2025-04-28
  • Python基础考点用法介绍

    Python作为一门脚本语言,其易学易用、开发快速的特点吸引了大量开发者。本文将从Python基础考点出发,详细阐述Python的特点、数据类型、运算符、流程控制、函数、模块等方面…

    编程 2025-04-28
  • Python动态输入: 从基础使用到应用实例

    Python是一种高级编程语言,因其简单易学和可读性而备受欢迎。Python允许程序员通过标准输入或命令行获得用户输入,这使得Python语言无法预测或控制输入。在本文中,我们将详…

    编程 2025-04-28

发表回复

登录后才能评论