我已经每天使用matplotlib五个月了,我仍然觉得新数据的创建令人困惑。
通常我创建一个带有2x2子图的图形,例如,使用如下方法:
import matplotlib.pyplot as plt
import itertools as it
fig,axes = plt.subplots(2,2)
axit = (ax for ax in it.chain(*axes))
for each of four data series I want to plot:
ax = next(axit)
ax.plot(...)
我现在的问题是:如何完全独立于Pyplot操作,也就是说,如何创建一个图形,用图形填充它,更改样式,并且只告诉该图形在我希望它出现的确切时刻出现。以下是我遇到的问题:
import matplotlib as mpl
gs = gridspec.GridSpec(2,2)
fig = mpl.figure.Figure()
ax1 = fig.add_subplot(gs[0])
ax1.plot([1,2,3])
ax2 = fig.add_subplot(gs[1])
ax2.plot([3,2,1])
在运行上述程序之后,唯一想到的就是使用:
plt.draw()
但这行不通。有没有什么东西可以让图中的图形出现?而且,是
fig = mpl.figure.Figure()
我要做的就是在没有Pyplot的情况下创建图形?
最佳答案
您可以手动将适当的backend附加到您的图形上,然后显示:
from matplotlib.backends import backend_qt4agg # e.g.
backend_qt4agg.new_figure_manager_given_figure(1, fig)
fig.show()
…但是为什么不使用?