用matplotlib绘制第二个图时首先仍然打开

K这里是我正在尝试做的更精确的例子。 我使用WXBuilder for Python作为具有多个绘图功能的用户界面,即用户必须能够根据他们选择的参数绘制图表。 在绘制图形之后,我希望用户能够在不关闭第一个图形的情况下绘制第二个图形。 这是为了比较目的。 以下是我期待做的一个过于简单的例子。

导入matplotlib作为plt

def OnPlotClick1(self,event):
plt.plot(self.DateArray1,self.kVAArray2)plt.show()

def OnPlotClick2(self,event):
plt.plot(self.DateArray1,self.kVAArray2)plt.show()

现在我假设我的问题是由于绘图和显示()图形而引起的,因此程序以某种方式阻止了功能,直到第一个图形或绘图窗口关闭。

我希望这能更好地解释我的问题。


您也可以在同一幅图中绘制两个或两个以上的绘图仪

import matplotlib.pyplot as plt
def my_plotter(ax, data1, data2, param_dict):
    out = ax.plot(data1, data2, **param_dict)
    return out
fig, (ax1, ax2) = plt.subplots(1, 2)
#here you put your data
data1=[0,1,2,3,8]
data2=[0,1,2,3,8]
data3=[0,1,2,3,8]
data4=[0,1,2,3,8]

my_plotter(ax1, data1, data2, {'marker':'x'})
my_plotter(ax2, data3, data4, {'marker':'o'})
plt.show()

你不应该阻止表演。 使用:

import matplotlib.pylab as plt
plt.plot([1,2,3])   # first plot
plt.show(block=False)  # do not block
plt.plot([11,21,31])  # second plot

每个窗口都以matplotlib的说法,一个新的数字。 你可以调用plt.subplots两次来创建两个数字:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 1000)
y1 = np.sin(x)*np.exp(-x/5.0)
y2 = np.sin(x**2)*x
fig1, ax1 = plt.subplots()
ax1.plot(x, y1)

fig2, ax2 = plt.subplots()
ax2.plot(x, y2)

plt.show()

请注意, plt.show()启动一个GUI事件循环,因此通常应该只对每个脚本调用一次。

链接地址: http://www.djcxy.com/p/67597.html

上一篇: Plotting second figure with matplotlib while first is still open

下一篇: How to make IPython notebook matplotlib plot inline