Python figure参数及subplot子图绘制代码

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)函数可以调整子图之间的间距:

leftrightbottomtop分别指定左、右、下、上边距的宽度,单位为子图宽度的百分比。

wspacehspace分别指定子图之间的水平和垂直间距,单位为子图宽度的百分比。

例如,使用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绘制多行多列子图

通过调整nrowsncols的数值可以绘制多行多列的子图。

例如,设置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()

运行结果如下:

后端开发标签