matplotlib学习笔记

1.简介

  matplotlib是python的一个2D绘图库,它可以在不同平台上地使用多种通用的绘图格式(hardcopy formats)和交互环境绘制出出版物质量级别的图片。matplotlib可以通过python脚本,python/ipython shell,web application servers以及six图像用户接口工具箱来调用。

  其官方地址:http://matplotlib.org/index.html

2.使用案例

 2.1 绘制决策树*

 *该代码来自于《机器学习实战》

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Thu Mar 17 20:24:41 2016
 4
 5 @author: Dale
 6 """
 7
 8 import matplotlib.pyplot as plt
 9
10 decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")
11 leafNode = dict(boxstyle = "round4", fc = "0.8")
12 arrow_args = dict(arrowstyle = "<-")
13
14 def plotNode(nodeTxt, centerPt, parentPt, nodeType):
15     ‘‘‘
16     下面这个函数原型是class matplotlib.axes.Axes()的成员函数annotate()
17     该函数的作用是为绘制的图上指定的数据点xy添加一个注释nodeTxt,注释的位置由xytext指定
18     其中,xycoords来指定点xy坐标的类型,textcoords指定xytext的类型,xycoords和textcoords的取值如下:
19     ‘figure points’:此时坐标表示坐标原点在图的左下角的数据点
20     ‘figure pixels’:此时坐标表示坐标原点在图的左下角的像素点
21     ‘figure fraction’:此时取值是小数,范围是([0, 1], [0, 1])
22                         ,在图的最左下角时xy是(0,0), 最右上角是(1, 1)
23                         ,其他位置按相对图的宽高的比例取小数值
24     ‘axes points’:此时坐标表示坐标原点在图中坐标的左下角的数据点
25     ‘axes pixels’:此时坐标表示坐标原点在图中坐标的左下角的像素点
26     ‘axes fraction’:类似‘figure fraction’,只不过相对图的位置改成是相对坐标轴的位置
27     ‘data’:此时使用被注释的对象所采用的坐标系(这是默认设置),被注释的对象就是调用annotate这个函数
28             那个实例,这里是ax1,是Axes类,采用ax1所采用的坐标系
29     ‘offset points’:此时坐标表示相对xy的偏移(以点的个数计),不过一般这个是用在textcoords
30     ‘polar’:极坐标类型,在直角坐标系下面也可以用,此时坐标含义为(theta, r)
31
32     参数arrowprops含义为连接数据点和注释的箭头的类型,该参数是dictionary类型,该参数含有一个
33     名为arrowstyle的键,一旦指定该键就会创建一个class matplotlib.patches.FancyArrowPatch类的实例
34     该键取值可以是一个可用的arrowstyle名字的字符串,也可以是可用的class matplotlib.patches.ArrowStyle类的实例
35     具体arrowstyle名字的字符串可以参考
36     http://matplotlib.org/api/patches_api.html#matplotlib.patches.FancyArrowPatch
37     里面的class matplotlib.patches.FancyArrowPatch类的arrowstyle参数设置
38
39     函数返回一个类class matplotlib.text.Annotation()的实例
40     ‘‘‘
41     createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = ‘axes fraction‘, va = ‘center‘, ha = ‘center‘, bbox = nodeType, arrowprops = arrow_args)
42
43 def createPlot():
44     fig = plt.figure(1, facecolor=‘white‘) #创建新的figure 1, 背景颜色为白色
45     fig.clf()  #清空figure 1的内容
46     ‘‘‘
47      在新建的figure 1里面创建一个1行1列的子figure的网格,并把网格里面第1个子figure的Axes实例axes返回给ax1作为函数createPlot()的属性
48     ,这个属性ax1相当于一个全局变量,可以给plotNode函数使用
49     ‘‘‘
50     createPlot.ax1 = plt.subplot(111, frameon=False)
51     plotNode(‘a decision node‘, (0.5, 0.1), (0.1, 0.5),  decisionNode)
52     plotNode(‘a leaf node‘, (0.8, 0.1), (0.3, 0.8), leafNode)
53     plt.show()

运行createPlot()函数的结果如下:

  

  

时间: 2024-12-12 17:45:03

matplotlib学习笔记的相关文章

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

线性回归学习笔记

操作系统 : CentOS7.3.1611_x64 python版本:2.7.5 sklearn版本:0.18.2 tensorflow版本 :1.2.1 线性回归是利用数理统计中回归分析, 来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法, 运用十分广泛. 其表达形式为y = w'x+e,e为误差服从均值为0的正态分布. 根据变量个数的多少可以分为一元线性回归和多元线性回归. 回归模型中, 一元回归是最简单且稳健的, 但描述复杂系统的行为时往往乏力, 因此基于多元回归的预测技术更

python学习笔记大纲

因为工作需要,开始了python的学习之旅.学习的主要内容包括python基础知识.python数据分析基础知识.numpy专题学习.基于python的机器学习算法实现. 下面是系列笔记的一个大纲,希望朋友们多提意见和建议. [一]python基础知识 python基础教程学习笔记---(1)基础语法 python基础教程学习笔记---(2)列表和元组 python基础教程学习笔记---(3)字符串 python基础教程学习笔记---(4)字典 python基础教程学习笔记---(5)条件.循环

python数据分析入门学习笔记儿

学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分析相关python库的介绍(前言1~4摘抄自<利用python进行数据分析>) 1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 (3)用于读写硬盘

多项式回归学习笔记

操作系统 : CentOS7.3.1611_x64 python版本:2.7.5 sklearn版本:0.18.2 tensorflow版本 :1.2.1 多项式的定义及展现形式 多项式(Polynomial)是代数学中的基础概念,是由称为不定元的变量和称为系数的常数通过有限次加减法.乘法以及自然数幂次的乘方运算得到的代数表达式. 多项式分为一元多项式和多元多项式,其中: 不定元只有一个的多项式称为一元多项式: 不定元不止一个的多项式称为多元多项式. 本文讨论的是一元多项式相关问题. 其一般形式

Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的垂直搜索引擎,专门为用户提供团购.优惠券的检索:同时存在一个通用的搜索引擎,比如百度,通用搜索引擎希望能够识别出一个Query是否具有O2O检索意图,如果有则调用O2O垂直搜索引擎,获取结果作为通用搜索引擎的结果补充. 我们的目的是学习出一个分类器(classifier),分类器可以理解为一个函数,

Numpy学习笔记(二)

最近一直在学HTML5和CSS3,Numpy的东西都有些生疏,那本书是已经看完了的,紧跟着相关的代码也都敲了一遍,还是发现了一些问题,因为这样的学习方式,总感觉太被动,紧紧跟着示例代码,缺少了整体观,即使你现在问我Numpy可以处理什么问题,我还是回答不出.所以,有必要回头重来一遍,再一次审视代码背后的意义,写博客真的是一个很不错的方式,毕竟,如果你不懂,写出来的文字必然也是混乱的. 那,下面记录一下Numpy学习笔记(二) Example1 文件读写:数据不应该仅仅存在内存里,应该及时保存在硬

[Python] Python 学习笔记

Python 学习笔记 安装包 在 CMD 中输入: pip install matplotlib python -m pip install matplotlib