要在wxPython界面上显示matplotlib图形,有两种方法:

  1. 使用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()
  1. 使用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()

这两种方法各有优缺点,选择哪种方法取决于你的需求。如果需要更复杂的图形,建议使用第一种方法。如果只需要绘制简单的图形,第二种方法更为简单方便。

matplotlib显示在wxPython界面上的方法

原文地址: http://www.cveoy.top/t/topic/f3x 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录