0
我在面板中有一個2x2 FlexGridSizer
,我想同時插入四個不同的matplotlib圖形和他們自己的工具欄。在wxPython中嵌入多個matplotlib圖形
我已經看到很多鏈接相關和工作示例嵌入一個圖,但因爲我是一個wxPython和OOP begginer,當測試一些代碼並試圖將它們與我的合併時,我感到非常困惑。
這裏是一塊頁面類wx.Notebook
作用的地方,我想提出的數字
class Pagina(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.boton_descargar = wx.Button(self, -1, label=u"Descargar")
self.boton_desconectar = wx.Button(self, -1, label=u"Desconectar")
sizer = wx.BoxSizer(wx.VERTICAL)
subsizer1 = wx.BoxSizer(wx.HORIZONTAL)
subsizer2 = wx.FlexGridSizer(rows=2, cols=2)
sizer.Add(subsizer1, 0, wx.EXPAND | wx.ALL, 0)
sizer.Add(subsizer2, 1, wx.EXPAND | wx.ALL, 0)
sizer.Add(self.boton_desconectar, 0, wx.ALIGN_RIGHT | wx.RIGHT, 10)
subsizer1.Add(self.boton_descargar, 0, wx.ALL, 10)
self.Bind(wx.EVT_BUTTON, self.onClick_descargar, self.boton_descargar)
self.Bind(wx.EVT_BUTTON, self.onClick_desconectar, self.boton_desconectar)
self.SetSizer(sizer)
def onClick_descargar(self, event):
HiloDescarga()
def onClick_desconectar(self, event):
pass
HiloDescarga
實際上是推出下載一些文本行線程,處理數據,並繪製這種方式(第四圖是同樣的東西):
import matplotlib.pyplot as plt
line, = plt.plot(range(len(x)), x, '-', linewidth=1)
line, = plt.plot(range(len(x)), f, 'y-', linewidth=1)
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'title1')
plt.grid()
plt.figure()
line, = plt.plot(range(len(y)), y, 'r-', linewidth=1)
line, = plt.plot(range(len(y)), g, 'y-', linewidth=1)
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'title2')
plt.grid()
plt.figure()
line, = plt.plot(range(len(z)), z, 'g-', linewidth=1)
line, = plt.plot(range(len(z)), h, 'y-', linewidth=1)
plt.xlabel('x')
plt.ylabel('y')
plt.title(r'title3')
plt.grid()
plt.show()
所以這些數字只是在分開的窗口中彈出。如果你能給我一個片段,或者至少有一些方向,也許對繪圖代碼做一些改變,但我不知道。歡迎任何幫助。
我要在一分鐘內試試這個。但我有一個疑問。爲繪圖任務啓動一個新線程是一個好主意嗎?我獨立的繪圖腳本需要一段時間才能完成。 – Javier
對不起,不能真正幫助你 –