展开全部

# -*- coding: utf-8 -*-

###############################################################################

#  wxMPL_test.pyw

#author: Wu Xuping

#Date : 2013-09-15

#测试如何将MatPlotLib嵌入到wxPython中

###############################################################################

import numpy as np

import wx

import matplotlib

# matplotlib采用WXAgg为后台,将matplotlib嵌入wxPython中

matplotlib.use("WXAgg")

from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas

from matplotlib.figure import Figure

from matplotlib.backends.backend_wx import NavigationToolbar2Wx as NavigationToolbar

######################################################################################

class MPL_Panel(wx.Panel):

''''' #MPL_Panel面板,可以继承或者e69da5e6ba903231313335323631343130323136353331333361313235创建实例'''

def __init__(self,parent):

wx.Panel.__init__(self,parent=parent, id=-1)

self.Figure = matplotlib.figure.Figure(figsize=(4,3))

self.axes = self.Figure.add_axes([0.1,0.1,0.8,0.8])

self.FigureCanvas = FigureCanvas(self,-1,self.Figure)

#继承鼠标移动显示鼠标处坐标的事件

self.FigureCanvas.mpl_connect('motion_notify_event',self.MPLOnMouseMove)

self.NavigationToolbar = NavigationToolbar(self.FigureCanvas)

self.StaticText = wx.StaticText(self,-1,label='Show Help String')

self.SubBoxSizer = wx.BoxSizer(wx.HORIZONTAL)

self.SubBoxSizer.Add(self.NavigationToolbar,proportion =0, border = 2,flag = wx.ALL | wx.EXPAND)

self.SubBoxSizer.Add(self.StaticText,proportion =-1, border = 2,flag = wx.ALL | wx.EXPAND)

self.TopBoxSizer = wx.BoxSizer(wx.VERTICAL)

self.TopBoxSizer.Add(self.SubBoxSizer,proportion =-1, border = 2,flag = wx.ALL | wx.EXPAND)

self.TopBoxSizer.Add(self.FigureCanvas,proportion =-10, border = 2,flag = wx.ALL | wx.EXPAND)

self.SetSizer(self.TopBoxSizer)

#显示坐标值

def MPLOnMouseMove(self,event):

ex=event.xdata#这个数据类型是numpy.float64

ey=event.ydata#这个数据类型是numpy.float64

if ex  and ey :

#可以将numpy.float64类型转化为float类型,否则格式字符串可能会出错

self.StaticText.SetLabel('%10.5f,%10.5f' % (float(ex),float(ey)))

#也可以这样

#self.StaticText.SetLabel('%s,%s' % (ex,ey))

###############################################################################

#  MPL_Frame添加了MPL_Panel的1个实例

###############################################################################

class MPL_Frame(wx.Frame):

"""MPL_Frame可以继承,并可修改,或者直接使用"""

def __init__(self,title="MPL_Frame Example In wxPython",size=(800,500)):

wx.Frame.__init__(self,parent=None,title = title,size=size)

self.MPL = MPL_Panel(self)

self.Figure = self.MPL.Figure

self.axes = self.MPL.axes

self.FigureCanvas = self.MPL.FigureCanvas

self.RightPanel = wx.Panel(self,-1)

#测试按钮1

self.Button1 = wx.Button(self.RightPanel,-1,"TestButton",size=(100,40),pos=(10,10))

self.Button1.Bind(wx.EVT_BUTTON,self.Button1Event)

#创建FlexGridSizer

self.FlexGridSizer=wx.FlexGridSizer( rows=5, cols=1, vgap=5,hgap=5)

self.FlexGridSizer.SetFlexibleDirection(wx.BOTH)

#加入Sizer中

self.FlexGridSizer.Add(self.Button1,proportion =0, border = 5,flag = wx.ALL | wx.EXPAND)

self.RightPanel.SetSizer(self.FlexGridSizer)

self.BoxSizer=wx.BoxSizer(wx.HORIZONTAL)

self.BoxSizer.Add(self.MPL,proportion =-10, border = 2,flag = wx.ALL | wx.EXPAND)

self.BoxSizer.Add(self.RightPanel,proportion =0, border = 2,flag = wx.ALL | wx.EXPAND)

self.SetSizer(self.BoxSizer)

#MPL_Frame界面居中显示

self.Centre(wx.BOTH)

#按钮事件,用于测试绘图

def Button1Event(self,event):

x=np.arange(-10,10,0.25)

y=np.cos(x)

self.axes.plot(x,y,'--b*')

self.axes.grid(True)

self.FigureCanvas.draw()#一定要实时更新

########################################################################

#主程序测试

if __name__ == '__main__':

app = wx.PySimpleApp()

#frame = MPL2_Frame()

frame =MPL_Frame()

frame.Center()

frame.Show()

app.MainLoop()

wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中相关推荐

  1. matplotlib嵌入到pyqt中

    在pyqt5中使用matplotlib 前言 虽然,qt中也提供了绘图函数,但对于初学者并不是很容易掌握,众所周知,matplot提供了简单,易用,强大的绘图函数,结合mumpy基本可以达到matlb ...

  2. python爬网络图片脚步_关于python:如何从本地计算机或网络资源将图像或图片嵌入jupyter笔记本中?...

    我想将图像包括在Jupyter笔记本中. 如果执行以下操作,则可以正常工作: from IPython.display import Image Image("img/picture.png ...

  3. UBUNTU16.04使用CornerNet_Lite进行目标识别并嵌入到ROS中

    运行环境说明: 1)Python 3.7 2)PyTorch 1.0.0 3)CUDA 10 4)GCC 4.9.2 or above 本机测试环境说明: torch1.4+10.0+Python3. ...

  4. data类型的Url格式:把小数据直接嵌入到Url中

    原文地址: data类型的Url格式:把小数据直接嵌入到Url中 所谓"data"类型的Url格式,是在RFC2397中提出的,目的对于一些"小"的数据,可以在 ...

  5. python读取数据文件、并把里面的数据变成x的二维坐标_python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法...

    python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法 1. test.txt文件,数据以逗号分割,第一个数据为x坐标,第二个为y坐标,数据如下:1.1,2 2.1,2 3.1 ...

  6. Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation)

    Python可视化(matplotlib)在图像中添加文本和标记(Text and Annotation) 目录 Python可视化(matplotlib)在图形中添加文本和标记(Text and A ...

  7. python在坐标轴上画矩形_Python使用matplotlib实现在坐标系中画一个矩形的方法

    本文实例讲述了Python使用matplotlib实现在坐标系中画一个矩形的方法.分享给大家供大家参考.具体实现方法如下: import matplotlib.pyplot as plt from m ...

  8. 百度搜索引擎提供了一段嵌入到页面中的代码

    百度搜索引擎提供了一段嵌入到页面中的代码 <form action="http://www.baidu.com/baidu" target="_blank" ...

  9. 把控制台程序嵌入到 WinForm 中执行

    我们经常有一些用控制台实现的简单应用,这种应用一般都是一步一步"向导"式执行,在每一步上收集用户的输入,最后得到程序执行的结果.但有些用户可能不喜欢用键盘操作的命令行界面,还是愿意 ...

最新文章

  1. 输入一个数寻找丑数C语言,数据结构与算法试题80道.doc
  2. 常见概率分布的Matplotlib实现
  3. ajax如何提交多表单的值_Java Web初学者探索学习笔记7—矛盾解决方案:表单标签验证与ajax提交...
  4. 化工原理 补考(重点)
  5. 查看端口是否被占用,以及端口的应用名称
  6. 数据采集组件:Flume基础用法和Kafka集成
  7. 使用AspectJ开发AOP更加便捷,你不知道嘛
  8. english 2012020604
  9. java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
  10. 语言做的表白魔方_程序员表白教程,这些代码用过的都说浪漫
  11. C++基础::shared_ptr 编程细节(一)
  12. 阿里巴巴官方最新Redis开发规范!
  13. 初次接触ruby的困惑
  14. mysql实用教程的数据构造
  15. 笨办法学R编程(4)
  16. 崩溃死我的Dev无法调试,Devc调试点下一步没反应
  17. lopatkin俄大神精简中文系统Windows 10 1607 Enterprise LTSB 2016 x86-x64 ZH-CN 2x1
  18. Deep metric learning 深度度量学习 总结
  19. 【C++】输出公元1900-2100年之间所有闰年的年号,每5个一行
  20. win10 tagWnd部分成员逆向(窗口隐藏,窗口保护)

热门文章

  1. php定义一个名为Vehicles,php的扩展和嵌入--c++类的扩展开发
  2. 深入理解javascript原型和闭包(4)——隐式原型
  3. Visual Studio 2022 17.1 正式发布,5个新亮点!
  4. 这个Python库助你发现网络图的社区结构
  5. Python桌面图形程序美化的方法论
  6. python正则表达式在线_python正则表达式
  7. 计算机语言中空下划线,2017-7-31 Shell脚本编程基础
  8. python中property方法有用_python中@property和property函数常见使用方法示例
  9. retrofit 会请求两次_Retrofit2+Rxjava-Rxjava2.x-篇二-依次执行多个请求-flatMap/map
  10. 深度学习-Tensorflow2.2-图像处理{10}-图像语义分割-23