matplotlib(mpl)本身支持wxpython作为backends。但是直接使用import pylab时调用的wx窗体不能自定义和改制。跟踪下pylab模块的show方法,最终找到窗体类为backend_wx(agg)下的FigureFrameWx(FigureFrameWxAgg).我想把这个类单独拽出来,但关联太多,实在力不从心,后来发现类FigureCanvasWx(FigureCanvasWxAgg),继承了wx.Panel类,图表显示应该跟此有关。(搞不太懂后缀agg的含义……)
FigureCanvasWx 需要三个参数:parent, id ,figure. 前两个与wx.Panel相同,后一个是Figure实例(参照matploglab.figure模块),鼓捣一阵,写出一个简单可显示窗体。
import wx
from matplotlib.backends import backend_wxagg
from matplotlib.figure import Figure
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.panel = backend_wxagg.FigureCanvasWxAgg(self, -1, Figure())
axes = self.panel.figure.gca()
axes.cla()
axes.plot([1,2,3],[1,2,3])
self.panel.draw()
app = wx.App()
f= TestFrame()
f.Show(True)
app.MainLoop()
这个代码只实现了一张极简单的x=y直线图,如果需要添加相应事件和显示,请参照backend_wx内的代码。
当然已经有人替我们做好一些, wxmpl http://agni.phys.iit.edu/~kmcivor/wxmpl/
参看源码,其实mpl嵌入wxpython不是难事。
分享到:
相关推荐
本文将深入探讨如何将matplotlib嵌入到wxPython中,以实现交互式的数据可视化。 首先,让我们理解这两个库的基本功能。matplotlib是一个开源库,它提供了丰富的图表类型,如线图、散点图、柱状图等,并支持自定义...
以及Matplotlib的Figure和FigureCanvas模块,分别用于创建图形对象和将图形嵌入wxPython窗口。 示例代码中定义了两个类,FirseFrame和MainApp。FirseFrame继承自wx.Frame,是应用程序的主窗口,包含一个Panel用于...
使用Matplotlib,用户可以将图表输出为各种硬拷贝格式,并且可以嵌入到多种交互式环境中。它支持与TeX文档集成的Postscript输出,这对于学术出版和报告来说非常重要。此外,Matplotlib还强调代码的可读性和可扩展性...
Matplotlib库被设计为可以轻松嵌入到多种图形用户界面工具包中,比如Tkinter、wxPython、Qt等。 NumPy是一个开源的Python科学计算库,它提供了高性能的多维数组对象以及用于处理数组的工具。NumPy库是SciPy、...
Matplotlib提供了一个面向对象的API,有助于将图表嵌入到使用Python GUI工具包(如PyQt、WxPython或Tkinter)的应用程序中。此外,它也可以在Python和IPython shell、Jupyter notebook以及Web应用服务器中使用。 ##...
5. **Jupyter Notebook兼容**:在Jupyter Notebook环境中,Matplotlib可以方便地嵌入图表,实现代码和结果的即时交互。 6. **Pyplot子模块**:Pyplot是Matplotlib最常用的子模块,提供了一套类似于MATLAB的命令接口...
1. matplotlib概述:matplotlib是Python最广泛使用的数据可视化库,它基于Tkinter GUI库,但同时也支持其他后端如Qt、wxPython等。其设计理念是模仿MATLAB的绘图语法,因此对于MATLAB用户来说,matplotlib的学习曲线...
+等通用GUI工具包将绘图嵌入到应用程序中。 还有一个基于状态机(如OpenGL)的程序化“ pylab”接口,尽管不鼓励使用它,但它的设计与MATLAB非常相似。 SciPy使用Matplotlib。 Matplotlib最初由John D. Hunter编写,...
它支持多种输出格式,如PNG、PDF、SVG等,并且能够嵌入到GUI工具包中,如Tkinter、wxPython、PyQt等。 #### 静态图表绘制 在静态图表绘制中,我们通常会先定义好数据集,然后使用Matplotlib将其可视化。这种方式...
开发者可能选择了SQLite这样的轻量级数据库,因为它不需要单独的服务进程,可以直接嵌入到Python应用程序中。通过SQL语句,可以将爬取到的音乐数据和用户的收藏、播放历史等信息存储在数据库中,实现快速检索和更新...
12. **扩展与嵌入**:讲解如何使用C或C++扩展Python,以及如何将Python嵌入到其他应用中。 13. **实战项目**:提供实际项目案例,让读者能够将所学知识应用到实践中,增强动手能力。 通过阅读《Programming Python...
这个项目结合了基础的数学运算、随机数生成以及可视化技术,帮助初学者理解如何将这些元素整合到实际应用中。下面我们将深入探讨其中涉及的几个关键知识点。 首先,"算术随机数字计算"是指使用计算机生成随机数,并...
Python可以作为组件集成的语言,通过C/C++扩展,嵌入到其他系统中。它可以作为控制语言,用于脚本化测试、调用库函数,或者在不重新编译的情况下定制产品。Python有工具如SWIG和SIP,可以帮助自动化C/C++库的集成...
14. **扩展与嵌入Python**:讲解如何编写C/C++扩展模块,以及如何在其他语言中嵌入Python解释器。 15. **高级话题**:涵盖元编程、装饰器、生成器、上下文管理器、生成器表达式、列表推导等Python的高级特性。 ...
根据提供的文件信息,本书《程序设计于Python》第四版由马克·卢茨撰写,是关于Python编程语言在系统管理、图形界面开发与Web应用领域的深入探讨。本书特别聚焦于使用Python来解决实际问题的方法和技术,而不仅仅...
Plotly的图表可以在网页上嵌入,用户可以通过鼠标悬停来查看数据详情,非常适合数据探索和报告制作。 4. **Bokeh**:是另一个强大的交互式可视化库,特别适合大规模数据的可视化,可以生成能在现代Web浏览器中展示...
它可以扩展C/C++库,也可以被嵌入到其他系统中,使得动态定制和脚本化控制变得容易。SWIG和SIP等工具简化了这个过程。Python还支持COM(Windows)、Jython(Java)、IronPython(.NET)和CORBA等跨平台的组件交互。 ...
10. **嵌入式使用**:除了作为独立的shell,IPython还可以被其他应用程序嵌入,作为其内部的Python解释器,例如在Qt或wxPython应用中。 通过这些特性,IPython成为Python开发者和数据科学家的首选工具,它不仅提供...
4. **可嵌入**:Python可以嵌入到其他系统中,作为组件使用,增加程序的功能。 5. **易于维护**:Python的模块化设计使得代码组织清晰,便于维护和扩展。 6. **互动模式**:Python支持交互式编程,可以在命令行...
2. **SQLite数据库**:SQLite是一个轻量级、无服务器、自包含的数据库引擎,可以直接嵌入到Python程序中,非常适合小型应用或作为学习数据库管理的基础。 3. **数据库设计**:包括关系数据库的概念,如实体、属性、...