我正在创建一个带有pyplot的子图,并在其轴上绘制所有内容。我正在尝试同时处理两个单独的数字fig
和cor
。我正在做的是
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
定义为cor
和ax
的子图,作为fig
的子图,因此bx=plt.subplot(211)
,但我想这不是论证2
的意思是什么。
如果我在plt.
工作,而没有定义fig
(例如,plt.plot(dates_obs,obs)
),那么它的工作方式(除了句柄定义等),但我不能这样做是因为我必须同时处理两个数字。
我错过了一些基本的东西吗? 非常感谢,
答案 0 :(得分:0)
使用您的代码,您创建了fig
和cor
,然后您创建了ax
和bx
。默认情况下,这些将绘制在您创建的最后一个数字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