【发布时间】:2015-08-28 19:58:39
【问题描述】:
我已经每天使用 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 的情况下创建图形所需要做的一切?
【问题讨论】:
-
你为什么不想使用pyplot?
-
我正在使用 Tkinter 将 matplotlib 嵌入到 GUI 中。在在一本书和网上看到了一些代码之后,我已经启动并运行了它。他们在 GUI 中嵌入绘图的方式不使用 pyplot。现在我正在尝试添加一些新功能,例如使用带有 gridspec 的多个绘图而不是简单的绘图。
-
这是一个如何在 Tk 中嵌入图形的示例:matplotlib.org/examples/user_interfaces/embedding_in_tk.html
标签: python matplotlib