如何在 matplotlib 中定义多个图形对象?

How to define several figure-objects in matplotlib?

我想定义两个图形对象,然后在一个循环中我想为每个对象做出贡献。以下代码将不起作用,但它演示了它是如何工作的。

import matplotlib.pyplot as plt

plt1.figure()
plt1.xticks(rotation=90)

plt2.figure()
plt2.xticks(rotation=90)

for i in range(5):

   plt1.plot(xs_a[i], ys_a[i], label='line' + str(i))
   plt2.plot(xs_b[i], ys_b[i], label='line' + str(i))

plt1.savefig(fname_1)
plt2.savefig(fname_2)

我一直认为 plt 是一个图像对象,我可以为其设置一些参数(例如 xticks)或者我可以向其添加一些曲线。但是,plt 是我导入的库。那么,当我需要定义两个或多个图形对象时,我应该怎么做呢?

这应该有效。您首先创建两个图形对象(fig1fig2)。对于每个图形,您使用 add_subplot 方法添加轴。然后,您可以使用这些轴对象绘制任何您想要的东西,并根据需要设置参数(如刻度)。

import matplotlib.pyplot as plt

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)

fig2 = plt.figure()
ax2 = fig2.add_subplot(111)

for i in range(5):

    ax1.plot(xs_a[i], ys_a[i], label='line' + str(i))
    ax2.plot(xs_b[i], ys_b[i], label='line' + str(i))

plt.setp( ax1.xaxis.get_majorticklabels(), rotation=90)
plt.setp( ax2.xaxis.get_majorticklabels(), rotation=90)

fig1.savefig(fname_1)
fig2.savefig(fname_2)