matplotlib核心概念
来源:互联网 发布:h3c acl禁止445端口 编辑:程序博客网 时间:2024/06/06 03:27
matplotlib API包含有三层:
- backend_bases.FigureCanvas : 图表的绘制领域
- backend_bases.Renderer : 知道如何在FigureCanvas上如何绘图
- artist.Artist : 知道如何使用Renderer在FigureCanvas上绘图
FigureCanvas和Renderer需要处理底层的绘图操作,例如使用wxPython在界面上绘图,或者使用PostScript绘制PDF。Artist则处理所有的高层结构,例如处理图表、文字和曲线等的绘制和布局。通常我们只和Artist打交道,而不需要关心底层的绘制细节。画布->颜料->画家
Artists分为简单类型和容器类型两种。简单类型的Artists为标准的绘图元件,例如Line2D、 Rectangle、 Text、AxesImage 等等。而容器类型则可以包含许多简单类型的Artists,使它们组织成一个整体,例如Axis、 Axes、Figure等。
直接使用Artists创建图表的标准流程如下:
- 创建Figure对象
- 用Figure对象创建一个或者多个Axes或者Subplot对象
- 调用Axies等对象的方法创建各种简单类型的Artists
Artist的属性
图表中的每个元素都用一个matplotlib的Artist对象表示,而每个Artist对象都有一大堆属性控制其显示效果。例如Figure对象和Axes对象都有patch属性作为其背景,它的值是一个Rectangle对象。通过设置此它的一些属性可以修改Figrue图表的背景颜色或者透明度等属性
patch的color属性通过set_color函数进行设置,属性修改之后并不会立即反映到图表的显示上,还需要调用fig.canvas.draw()函数才能够更新显示。
下面是Artist对象都具有的一些属性:
- alpha : 透明度,值在0到1之间,0为完全透明,1为完全不透明
- animated : 布尔值,在绘制动画效果时使用
- axes : 此Artist对象所在的Axes对象,可能为None
- clip_box : 对象的裁剪框
- clip_on : 是否裁剪
- clip_path : 裁剪的路径
- contains : 判断指定点是否在对象上的函数
- figure : 所在的Figure对象,可能为None
- label : 文本标签
- picker : 控制Artist对象选取
- transform : 控制偏移旋转
- visible : 是否可见
- zorder : 控制绘图顺序
Artist对象的所有属性都通过相应的 get_* 和 set_* 函数进行读写
Figure容器
最大的Artist容器是matplotlib.figure.Figure,它包括组成图表的所有元素。图表的背景是一个Rectangle对象,用Figure.patch属性表示。当你通过调用add_subplot或者add_axes方法往图表中添加轴(子图时),这些子图都将添加到Figure.axes属性中,同时这两个方法也返回添加进axes属性的对象,注意返回值的类型有所不同,实际上AxesSubplot是Axes的子类。
Figure对象有如下属性包含其它的Artist对象:
- axes : Axes对象列表
- patch : 作为背景的Rectangle对象
- images : FigureImage对象列表,用来显示图片
- legends : Legend对象列表
- lines : Line2D对象列表
- patches : patch对象列表
- texts : Text对象列表,用来显示文字
使用方式:
>>> fig = plt.figure()>>> ax1 = fig.add_subplot(211)>>> ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3])>>> ax1<matplotlib.axes.AxesSubplot object at 0x056BCA90>>>> ax2<matplotlib.axes.Axes object at 0x056BC910>>>> fig.axes[<matplotlib.axes.AxesSubplot object at 0x056BCA90>,<matplotlib.axes.Axes object at 0x056BC910>]
Axes容器
Axes容器是整个matplotlib库的核心,它包含了组成图表的众多Artist对象,并且有许多方法函数帮助我们创建、修改这些对象。和Figure一样,它有一个patch属性作为背景,当它是笛卡尔坐标时,patch属性是一个Rectangle对象,而当它是极坐标时,patch属性则是Circle对象。
下面详细列出Axes包含各种Artist对象的属性:
- artists : Artist对象列表
- patch : 作为Axes背景的Patch对象,可以是Rectangle或者Circle
- collections : Collection对象列表
- images : AxesImage对象列表
- legends : Legend对象列表
- lines : Line2D对象列表
- patches : Patch对象列表
- texts : Text对象列表
- xaxis : XAxis对象
- yaxis : YAxis对象
下面列出Axes的创建Artist对象的方法:
Axes的方法 所创建的对象 添加进的列表annotate Annotate textsbars Rectangle patcheserrorbar Line2D, Rectangle lines,patchesfill Polygon patcheshist Rectangle patchesimshow AxesImage imageslegend Legend legendsplot Line2D linesscatter PolygonCollection Collectionstext Text texts
使用方式:
>>> fig = plt.figure()>>> ax = fig.add_subplot(111)>>> rect = matplotlib.patches.Rectangle((1,1), width=5, height=12)>>> print rect.get_axes() # rect的axes属性为空None>>> rect.get_transform() # rect的transform属性为缺省值BboxTransformTo(Bbox(array([[ 1., 1.], [ 6., 13.]])))>>> ax.add_patch(rect) # 将rect添加进ax<matplotlib.patches.Rectangle object at 0x05C34E50>>>> rect.get_axes() # 于是rect的axes属性就是ax<matplotlib.axes.AxesSubplot object at 0x05C09CB0>
- matplotlib核心概念
- 绘图: matplotlib核心剖析
- 绘图: matplotlib核心剖析
- matplotlib核心剖析
- 绘图: matplotlib核心剖析
- matplotlib核心剖析
- 绘图: matplotlib核心剖析
- matplotlib核心剖析
- matplotlib核心剖析
- 绘图: matplotlib核心剖析
- 绘图: Python matplotlib核心剖析
- UDDI核心概念
- 面向对象核心概念
- 活动目录核心概念
- Struts2之核心概念
- Maven核心概念
- js 核心概念
- Apache Shiro 核心概念
- 九、Linux远程登陆
- OpenCV入门教程(6)-Mat类之内存管理和输出
- 十、Windows与Linux文件互享
- tomcat启动时闪退
- 欢迎使用CSDN-markdown编辑器
- matplotlib核心概念
- 十一、NFS与TFTP服务器
- 十二、Linux在线升级yum
- jlink烧录2440.jflash出错
- 十五、Linux编译器Gcc
- 十九、安装Linux系统到开发板
- 致敬2016GIS
- 连接器脚本
- OpenCV Soble算子水平和垂直方向导数问题