下面是关于“python绘制子图技巧之plt.subplot、plt.subplots及坐标轴修改”的完整攻略:
一、概述
在数据可视化中,对于多个子图的绘制需求非常常见,这时候我们可以使用matplotlib库中的subplot()或subplots()函数来实现。同时,对于需要修改坐标轴刻度、刻度值等样式的情况,也可以使用相关的函数实现。
二、plt.subplot()函数
subplot()函数可以实现在同一个图中绘制多个子图。
函数格式如下:
plt.subplot(nrows, ncols, plot_number)
该函数的参数有3个,分别是行数、列数和当前子图的编号。
例如,如果想要在一个2行3列的图中绘制第一幅子图,可以使用如下的代码:
plt.subplot(2,3,1)
三、plt.subplots()函数
subplots()函数可以快速地创建一个由多个子图构成的整体。
函数格式如下:
fig, axs = plt.subplots(nrows, ncols)
其中,fig表示整个图像的Figure对象,而axs则是Axes对象的数组。
例如,如果想要创建一个2x2的四个子图组成的整体,代码如下:
fig, axs = plt.subplots(2,2)
四、坐标轴的修改
在绘制子图时,我们还经常需要修改子图的坐标轴刻度、刻度值等样式。这时候可以使用相关函数修改。
1.修改刻度范围
可以使用xlim()和ylim()函数来修改坐标轴的刻度范围。例如,下面的代码将x轴的刻度范围设为[0,10]:
plt.xlim(0,10)
同样的,y轴的范围也可以使用ylim()函数来修改。
2.修改刻度值
可以使用xticks()和yticks()函数来修改坐标轴的刻度值。这两个函数的第一个参数表示需要修改的轴,第二个参数表示新的刻度值。例如,下面的代码将x轴的刻度值修改为[0, 2, 4, 6, 8, 10]:
plt.xticks([0, 2, 4, 6, 8, 10])
同样的,y轴的刻度值也可以使用yticks()函数来修改。
3.其他样式的修改
在坐标轴中,还可以修改很多其他的样式,比如字体大小、颜色、刻度线宽度等。这里不一一列举了,更多的样式可以查看matplotlib的官方文档。
五、示例
下面我们通过两个示例来演示如何使用plt.subplot()和plt.subplots()函数以及坐标轴样式的修改。代码如下:
示例1:
import matplotlib.pyplot as plt
import numpy as np
#创建一个3x3的figure对象
fig = plt.figure(figsize=(8,8))
#使用subplot()函数创建第一个子图,并绘制直线
ax1 = fig.add_subplot(3,3,1)
x = np.arange(0, 10, 0.1)
ax1.plot(x, np.sin(x))
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_title('Sin Wave')
#使用subplot()函数创建第二个子图,并绘制正弦函数
ax2 = fig.add_subplot(3,3,2)
y = np.arange(0, 10, 0.1)
ax2.plot(y, np.cos(y))
ax2.set_xlabel('x')
ax2.set_ylabel('y')
ax2.set_title('Cos Wave')
#使用subplots()函数创建第三个子图,并绘制柱状图
ax3 = fig.add_subplot(3,3,3)
data = [3,2,5,4,1]
labels = ['a', 'b', 'c', 'd', 'e']
ax3.bar(labels, data)
ax3.set_xlabel('x')
ax3.set_ylabel('y')
ax3.set_title('Bar Chart')
#设置整个图像的布局
plt.tight_layout()
#显示图像
plt.show()
示例2:
import numpy as np
import matplotlib.pyplot as plt
#生成数据
x = np.arange(-np.pi, np.pi, 0.01)
y1 = np.sin(x)
y2 = np.cos(x)
#创建一个2x1的figure对象,并绘制正弦函数和余弦函数
fig, axs = plt.subplots(2,1, figsize=(8,6))
axs[0].plot(x, y1)
axs[0].set_title('Sin Wave')
axs[1].plot(x, y2)
axs[1].set_title('Cos Wave')
#修改x轴的刻度范围和刻度值
for ax in axs:
ax.set_xlim(-np.pi, np.pi)
ax.set_xticks([-np.pi, 0, np.pi])
ax.set_xticklabels(['$-\pi$', '$0$', '$\pi$'])
#显示图像
plt.show()
以上就是关于“python绘制子图技巧之plt.subplot、plt.subplots及坐标轴修改”的完整攻略,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python绘制子图技巧之plt.subplot、plt.subplots及坐标轴修改 - Python技术站