所以我有一个看起来像这样的wxform,例如在sizer 中有一些面板。我希望这些包含一个 matplotlib 图和一个工具栏。但是,在代码中,它们不尊重它们的大小。我试着摆弄了几个小时,但它们就是不起作用(工具栏按钮不起作用)
与 matplotlib 相关的代码如下。
我不在这里使用特定的面板,因为我不知道如何在代码中引用它们,甚至不知道如何管理窗口和工具栏的大小..
任何帮助将非常感激!
import matplotlib
matplotlib.use('WXAgg')
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import \
FigureCanvasWxAgg as FigCanvas, \
NavigationToolbar2WxAgg as NavigationToolbar2Wx
#import matplotlib.pyplot as plt
import mainFrame
class MainFrameSub (mainFrame.MainFrame):
def __init__(self, parent, ip, product):
mainFrame.MainFrame.__init__(self, parent)
#self.createPlot()
self.setStatusBar('Ready')
self.ip = ip
self.sizer = self.bSizer3
self.figure = Figure()#figsize=(6, 4), dpi=100)
self.ax = self.figure.add_subplot(111)
self.ax.set_ylabel('Y-Label')
self.ax.grid()
self.ax.relim()
self.ax.autoscale_view()
self.ax.set_title("X-Label")
self.canvas = FigCanvas(self, 0, self.figure)
self.SetSizer(self.sizer)
self.sizer.Add(self.canvas, 0, wx.EXPAND)
self.toolbar = NavigationToolbar2Wx(self.canvas)
self.toolbar.Realize()
self.sizer.Add(self.toolbar, 0, wx.EXPAND)
self.toolbar.update()
self.ax.plot()
self.ax2 = self.ax.twinx()
self.lines= [None] * 1
self.lines[0], = self.ax.plot([],[])
self.canvas.draw()
基本上,问题是:如何在窗口的“子结构”之一中安装 matplotlib + 工具栏?如果我有一个有 4 个视图的网格,并且我希望 matplotlib 适合其中一个,我该如何在 wx 中做到这一点?