python之matplotlib学习

学习《matplotlib for python Developers》笔记

python中使用matplotlib通常有以下三种方式

1,通过使用pyplot模块,提供类似Matlab命令的方式。

2,pylab模块,集合Matplotlib和Numpy使之接近Matlab(不被作者提倡)

3,面向对象方法,以python的方式使用,更加的pythonic。

三者之间面向对象的方法比价复杂,但是可以和GUI很好的融合。下面主要介绍第三种方法。使用实例如下:

import matplotlib.pyplot as plt
import numpy as np
x=np.arange(0,10,0.1)
y=np.random.randn(len(x))
fig=plt.figure()
ax=fig.add_subplot(111)
l,=plt.plot(x,y)
t=ax.set_title('random numbers')
plt.show()
对于plot返回的是一个line2D的对象,故能在line2D的操作都使用于l。如:

l.set_color('red')#设置颜色

figure()返回一个Figure对象

add_subplot返回一个Axes对象

Matplotlib对象介绍

Object
Description
FigureCanvasContainer class for the Figure instance
FigureContainer for one or more Axes instances
AxesThe rectangular ares to hold the basic elements,such as lines,text,and so on

知道python与matplotlib交互有三种方式,与GUI交互采用第三种方法面向对象法。 首先知道Matplotlib的常见对象Figure,FigureCanvas,Axes。

需要导入一下几个模块:

[python]  view plain copy
  1. from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas  
  2. from matplotlib.figure import Figure  
  3. import numpy as np  

首先简单介绍一下FigureCanvs 这是一个wxWidgets对象,继承自wxPanel,故可以通过其嵌入到wxWidgets应用程序。下面学习一个简单的实例:

[python]  view plain copy
  1. from numpy import arange, sin, pi  
  2.   
  3. from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas  
  4. from matplotlib.figure import Figure  
  5. import wx  
  6. class CanvasFrame(wx.Frame):  
  7.   
  8.     def __init__(self):  
  9.         wx.Frame.__init__(self,None,-1,  
  10.                          'CanvasFrame',size=(550,350))  
  11.   
  12.         self.SetBackgroundColour(wx.NamedColor("WHITE"))  
  13.   
  14.         self.figure = Figure()  
  15.         self.axes = self.figure.add_subplot(111)  
  16.         t = arange(0.0,3.0,0.01)  
  17.         s = sin(2*pi*t)  
  18.   
  19.         self.axes.plot(t,s)  
  20.         self.canvas = FigureCanvas(self, -1self.figure)  
  21.         self.sizer = wx.BoxSizer(wx.VERTICAL)  
  22.         self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)  
  23.         self.SetSizer(self.sizer)  
  24.         self.Fit()  
  25.   
  26.   
  27. class App(wx.App):  
  28.   
  29.     def OnInit(self):  
  30.         'Create the main window and insert the custom frame'  
  31.         frame = CanvasFrame()  
  32.         frame.Show(True)  
  33.   
  34.         return True  
  35.   
  36. app = App(0)  
  37. app.MainLoop()  

同笔记1介绍的面向对象方法基本一致,最后将figure加到FigureCanvas上面即可完成图像的绘制。

再前面导入from matplotlib.backends.backend_wx import NavigationToolbar2Wx可以创建导航工具栏,需要添加BoxSizer()对象来控制排版。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值