Pyplot不绘制子图

时间:2015-04-30 11:55:11

标签: python matplotlib plot

我正在创建一个带有pyplot的子图,并在其轴上绘制所有内容。我正在尝试同时处理两个单独的数字figcor。我正在做的是

import matplotlib.pyplot as plt
fig=plt.figure(1)
cor=plt.figure(2)
ax=plt.subplot(111)
bx=plt.subplot(211)

ax.plot(dates_obs,obs,label='L1')

handles, labels = ax.get_legend_handles_labels()
lgd = ax.legend(handles, labels, loc='upper left', bbox_to_anchor=(1.,1.))
plt.xticks(rotation=45)

box = ax.get_position()
ax.set_position([box.x0*0.5, box.y0*1.2, box.width * 0.75, box.height*1.05])
ax.grid('on')

fig.savefig('test.png', bbox_extra_artists=(lgd,))

然而,情节是空白的。

我尝试将bx定义为corax的子图,作为fig的子图,因此bx=plt.subplot(211),但我想这不是论证2的意思是什么。

如果我在plt.工作,而没有定义fig(例如,plt.plot(dates_obs,obs)),那么它的工作方式(除了句柄定义等),但我不能这样做是因为我必须同时处理两个数字。

我错过了一些基本的东西吗? 非常感谢,

1 个答案:

答案 0 :(得分:0)

使用您的代码,您创建了figcor,然后您创建了axbx。默认情况下,这些将绘制在您创建的最后一个数字cor上。然后,您保存fig(由于图表在cor上,因此为空。)

使用以下内容进行轴定义,以确保在右图上创建轴:

fig=plt.figure(1)
...
ax=fig.add_subplot(111)
bx=fig.add_subplot(211)
...
fig.savefig('test.png', bbox_extra_artists=(lgd,))

您可以为cor

执行类似的操作