4
私はmatplotlibをwxPythonと協力させようとしていますが、下のアプリケーションはうまく動作しません。 (GridSizerが機能しなかったかのように)要素が重なっています。私は間違って何をしていますか?wxPythonとmatplotlibを使った単純なアプリケーションがフリーズ
更新:GridSizerをBoxSizerに変更した後は、すべてのオペレーティングシステムで両方が動作しますが、 でもGridSizerの問題は解決されません。
# wxPython module
import wx
# Matplotlib Figure object
from matplotlib.figure import Figure
# Numpy functions for image creation
import numpy as np
# import the WxAgg FigureCanvas object, that binds Figure to
# WxAgg backend. In this case, this is a wxPanel
from matplotlib.backends.backend_wxagg import \
FigureCanvasWxAgg as FigureCanvas
class MyFigurePanel(wx.Panel):
"""Class to represent a Matplotlib Figure as a wxFrame"""
def __init__(self, parent):
wx.Panel.__init__(self, parent)
# usual Matplotlib functions
self.figure = Figure()#figsize=(6, 4), dpi=100)
self.axes = self.figure.add_subplot(111)
x = np.arange(0, 6, .01)
y = np.sin(x**2)*np.exp(-x)
self.axes.plot(x, y)
# initialize the FigureCanvas, mapping the figure to
# the Wx backend
self.canvas = FigureCanvas(self, wx.ID_ANY, self.figure)
class MyButtonPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
save_button = wx.Button(self, label = 'SAVE se')
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None)
panelx = wx.Panel(self)
self.figure = MyFigurePanel(panelx)
self.buttons = MyButtonPanel(panelx)
grid = wx.GridSizer(1,2)
grid.Add(self.figure)
grid.Add(self.buttons)
panelx.SetSizer(grid)
# Create a wrapper wxWidgets application
app = wx.PySimpleApp()
# instantiate the Matplotlib wxFrame
frame = MyFrame()
# show it
frame.Show(True)
# start wxWidgets mainloop
app.MainLoop()
Pythonのバージョンは同じですか? wxpython? mathplotlib? Ubuntuの – agf
は、Python 2.7.1以降、Windows 2.7.2、および両方のライブラリは同じバージョンです。 – KCH