1. Python figure参数介绍
在Python绘图中,figure是指绘图的整个画布。常用的一些参数如下:
figsize:指定画布的大小,单位为英寸。例如,figsize=(8, 6)表示画布宽8英寸、高6英寸。
dpi:指定画布的分辨率,默认为100。
facecolor:指定画布的背景颜色,默认为白色。
edgecolor:指定画布边框的颜色,默认为白色。
2. Python subplot绘制子图
subplot函数可以将画布划分为多个子图,方便在一个画布上绘制多个图形。
2.1 subplot基本使用方法
subplot函数的基本使用方法如下:
import matplotlib.pyplot as plt
plt.subplot(nrows, ncols, index)
其中,nrows表示子图的行数,ncols表示子图的列数,index表示子图的索引。
使用方法示例:
import matplotlib.pyplot as plt
plt.subplot(2, 2, 1)
plt.plot([0, 1], [0, 1], 'r--')
plt.subplot(2, 2, 2)
plt.plot([0, 1], [0, 1], 'g--')
plt.subplot(2, 2, 3)
plt.plot([0, 1], [0, 1], 'b--')
plt.subplot(2, 2, 4)
plt.plot([0, 1], [0, 1], 'p--')
运行结果如下:
2.2 subplot调整子图间距
使用subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
函数可以调整子图之间的间距:
left、right、bottom和top分别指定左、右、下、上边距的宽度,单位为子图宽度的百分比。
wspace和hspace分别指定子图之间的水平和垂直间距,单位为子图宽度的百分比。
例如,使用plt.subplots_adjust(wspace=0.3, hspace=0.3)
可以将子图之间的间距设为子图宽度的30%。完整示例代码如下:
import matplotlib.pyplot as plt
plt.subplot(2, 2, 1)
plt.plot([0, 1], [0, 1], 'r--')
plt.subplot(2, 2, 2)
plt.plot([0, 1], [0, 1], 'g--')
plt.subplot(2, 2, 3)
plt.plot([0, 1], [0, 1], 'b--')
plt.subplot(2, 2, 4)
plt.plot([0, 1], [0, 1], 'p--')
plt.subplots_adjust(wspace=0.3, hspace=0.3)
运行结果如下:
2.3 subplot绘制多行多列子图
通过调整nrows和ncols的数值可以绘制多行多列的子图。
例如,设置nrows=3、ncols=2可以绘制3行2列的子图。完整示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
plt.subplot(3, 2, 1)
plt.plot(x, y1)
plt.subplot(3, 2, 2)
plt.plot(x, y2)
plt.subplot(3, 2, 3)
plt.plot(x, y3)
plt.subplot(3, 2, 4)
plt.plot(x, y1)
plt.subplot(3, 2, 5)
plt.plot(x, y2)
plt.subplot(3, 2, 6)
plt.plot(x, y3)
plt.subplots_adjust(wspace=0.3, hspace=0.5)
运行结果如下:
3. temperature=0.6,绘制figure和subplot示例
在绘制过程中,我们可以使用plt.rcParams['figure.figsize']
来设置figure大小,并使用plt.subplots_adjust(wspace=0.3, hspace=0.3)
调整子图之间的间距。
完整示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
# 设置figure大小
plt.rcParams['figure.figsize'] = (10.0, 8.0)
# 定义x和y
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制子图1
plt.subplot(2, 1, 1)
plt.plot(x, y1, label='sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
# 绘制子图2
plt.subplot(2, 1, 2)
plt.plot(x, y2, label='cos(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
# 调整子图间距
plt.subplots_adjust(wspace=0.3, hspace=0.3)
# 显示图像
plt.show()
运行结果如下: