matplotlib绘制多张子图
时间: 2023-10-10 15:05:04 浏览: 122
使用matplotlib库可以方便地绘制多张子图。可以使用plt.subplots函数创建一个包含多个子图的图形对象,然后使用这些子图对象进行绘制。下面是两个示例代码:
示例一:
```
import matplotlib.pyplot as plt
fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))
ax = ax.ravel(order='C')
# 在每个子图对象上绘制图像
for i in range(figure_num):
ax[i].imshow(mpimg.imread(img[i]))
ax[i].set_title(labels[i], fontsize=40)
ax[i].set_xticks([])
ax[i].set_yticks([])
plt.tight_layout()
plt.savefig('C:Users\Administrator\Desktop\Figure_2')
plt.show()
```
示例二:
```
import matplotlib.pyplot as plt
figure, ax = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))
# 在每个子图对象上绘制图像
ax
相关问题
python插入多张子图 调节宽度
在Python中,特别是在使用matplotlib库创建图表时,如果你想在一个大的图形(如`Figure`)中插入多张子图,并调整它们的宽度比例,可以使用`subplots`函数或者`add_subplot`方法,配合`constrained_layout=True`来更好地管理布局。
例如,你可以这样做:
```python
import matplotlib.pyplot as plt
# 创建一个新的figure和gridspec对象
fig = plt.figure(constrained_layout=True)
gs = fig.add_gridspec(nrows=2, ncols=2) # 指定网格的行数和列数
# 对每个子图进行设置
for i in range(4):
ax = fig.add_subplot(gs[i])
if i == 0 or i == 3: # 如果是左上角或右下角的子图,设定宽度占整个grid的一半
ax.set_width_ratios([0.5])
else: # 其他子图宽度相同
ax.set_width_ratios([1])
# 绘制你的数据...
ax.plot(...)
plt.show()
```
在这个例子中,`set_width_ratios`函数用于设置子图的宽度比例。如果需要更复杂的布局,还可以通过调整`gridspec`的`width_ratios`属性。
matplotlib 怎么画多张
Matplotlib 可以使用 subplot() 函数来实现在一张图中绘制多张子图,也可以使用 figure() 函数创建多个图形窗口进行绘制。下面分别介绍两种方法的实现。
1. subplot() 函数
subplot() 函数的语法为:
```python
subplot(nrows, ncols, index, **kwargs)
```
其中,nrows 和 ncols 分别表示绘制的子图的行数和列数,index 表示当前子图的编号,从左上角开始,按行优先顺序编号。kwargs 表示其他可选参数,例如图形标题、坐标轴标签等。
下面是使用 subplot() 函数绘制多张子图的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制多张子图
plt.subplot(2, 1, 1)
plt.plot(x, y1)
plt.title('Sin Function')
plt.subplot(2, 1, 2)
plt.plot(x, y2)
plt.title('Cos Function')
plt.show()
```
运行上述代码即可绘制出两张子图,第一张为正弦函数,第二张为余弦函数。
2. figure() 函数
figure() 函数可以创建多个图形窗口,每个窗口可以绘制一张图。figure() 函数的语法为:
```python
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)
```
其中,num 表示窗口编号,figsize 表示窗口的大小,dpi 表示窗口的分辨率,facecolor 和 edgecolor 分别表示窗口的前景色和边框颜色,frameon 表示是否显示窗口边框,FigureClass 表示窗口的类型,clear 表示是否清空窗口。kwargs 表示其他可选参数,例如图形标题、坐标轴标签等。
下面是使用 figure() 函数创建多个图形窗口进行绘制的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建多个图形窗口并绘制图形
plt.figure(1)
plt.plot(x, y1)
plt.title('Sin Function')
plt.figure(2)
plt.plot(x, y2)
plt.title('Cos Function')
plt.show()
```
运行上述代码即可创建两个图形窗口,分别绘制出正弦函数和余弦函数。
阅读全文