matplotlib显示在wxPython界面上的方法
要在wxPython界面上显示matplotlib图形,有两种方法:
- 使用wxagg后端
使用wxagg后端,可以将matplotlib图形嵌入wxPython窗口中。以下是一个简单的示例代码:
import wx
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "matplotlib in wxPython")
# 创建一个matplotlib图形
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax.plot(x, y)
# 将matplotlib图形嵌入wxPython窗口中
canvas = FigureCanvas(self, -1, fig)
self.Show()
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
app.MainLoop()
- 使用wxPython自带的plotting库
wxPython自带了一个plotting库,可以用来绘制简单的图形。以下是一个示例代码:
import wx
import numpy as np
import wx.lib.plot as plot
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "matplotlib in wxPython")
# 创建一个wxPython plot控件
self.plot = plot.PlotCanvas(self)
# 绘制一个sin函数
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
line = plot.PolyLine(list(zip(x, y)), colour='blue', width=1)
gc = plot.PlotGraphics([line], "sin(x)", "x", "y")
self.plot.Draw(gc)
self.Show()
if __name__ == "__main__":
app = wx.App()
frame = MyFrame()
app.MainLoop()
这两种方法各有优缺点,选择哪种方法取决于你的需求。如果需要更复杂的图形,建议使用第一种方法。如果只需要绘制简单的图形,第二种方法更为简单方便。
原文地址: http://www.cveoy.top/t/topic/f3x 著作权归作者所有。请勿转载和采集!