Answers:
有几种方法可以做到这一点。该subplots
方法将创建图形以及随后存储在ax
数组中的子图。例如:
import matplotlib.pyplot as plt
x = range(10)
y = range(10)
fig, ax = plt.subplots(nrows=2, ncols=2)
for row in ax:
for col in row:
col.plot(x, y)
plt.show()
但是,类似的事情也可以使用,但是并不是很“干净”,因为您要创建带有子图的图形,然后在其上添加:
fig = plt.figure()
plt.subplot(2, 2, 1)
plt.plot(x, y)
plt.subplot(2, 2, 2)
plt.plot(x, y)
plt.subplot(2, 2, 3)
plt.plot(x, y)
plt.subplot(2, 2, 4)
plt.plot(x, y)
plt.show()
plot(x, y)
让图来自用户定义的函数,该函数使用networkx创建图形。如何使用它?
axn = ax.flatten()
,然后 for axes in axn: axes.plot(x,y)
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(range(10), 'r') #row=0, col=0
ax[1, 0].plot(range(10), 'b') #row=1, col=0
ax[0, 1].plot(range(10), 'g') #row=0, col=1
ax[1, 1].plot(range(10), 'k') #row=1, col=1
plt.show()
ax
,但不是fig
。这些是什么?
matplotlib.figure.Figure
类,通过它您可以对绘制的图进行很多操作。例如,您可以将颜色栏添加到特定的子图,您可以更改所有子图后面的背景色。您可以修改这些子图的布局,或为其添加新的小斧头。最好您可能希望所有可以通过fig.suptitle(title)
method 获得的子图都有一个主标题。最后,一旦对图满意,就可以使用fig.savefig
方法保存它。@Leevo
您可能对以下事实感兴趣:从matplotlib 2.1版开始,问题的第二个代码也很好用。
从更改日志:
Figure类现在具有subplots方法Figure类现在具有subplots()方法,该方法的行为与pyplot.subplots()相同,但是在现有的图形上。
例:
import matplotlib.pyplot as plt
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
plt.show()
阅读文档:matplotlib.pyplot.subplots
pyplot.subplots()
返回一个fig, ax
用符号解压缩为两个变量的元组
fig, axes = plt.subplots(nrows=2, ncols=2)
代码
fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)
不起作用,因为subplots()
是pyplot
不是对象成员的函数Figure
。