matplotlib学习笔记
1.简介
matplotlib是python的一个2D绘图库,它可以在不同平台上地使用多种通用的绘图格式(hardcopy formats)和交互环境绘制出出版物质量级别的图片。matplotlib可以通过python脚本,python/ipython shell,web application servers以及six图像用户接口工具箱来调用。
其官方地址:http://matplotlib.org/index.html
2.使用案例
2.1 绘制决策树*
*该代码来自于《机器学习实战》
# -*- coding: utf-8 -*-
"""
Created on Thu Mar 17 20:24:41 2016 @author: Dale
""" import matplotlib.pyplot as plt decisionNode = dict(boxstyle = "sawtooth", fc = "0.8")
leafNode = dict(boxstyle = "round4", fc = "0.8")
arrow_args = dict(arrowstyle = "<-") def plotNode(nodeTxt, centerPt, parentPt, nodeType):
'''
下面这个函数原型是class matplotlib.axes.Axes()的成员函数annotate()
该函数的作用是为绘制的图上指定的数据点xy添加一个注释nodeTxt,注释的位置由xytext指定
其中,xycoords来指定点xy坐标的类型,textcoords指定xytext的类型,xycoords和textcoords的取值如下:
‘figure points’:此时坐标表示坐标原点在图的左下角的数据点
‘figure pixels’:此时坐标表示坐标原点在图的左下角的像素点
‘figure fraction’:此时取值是小数,范围是([0, 1], [0, 1])
,在图的最左下角时xy是(0,0), 最右上角是(1, 1)
,其他位置按相对图的宽高的比例取小数值
‘axes points’:此时坐标表示坐标原点在图中坐标的左下角的数据点
‘axes pixels’:此时坐标表示坐标原点在图中坐标的左下角的像素点
‘axes fraction’:类似‘figure fraction’,只不过相对图的位置改成是相对坐标轴的位置
‘data’:此时使用被注释的对象所采用的坐标系(这是默认设置),被注释的对象就是调用annotate这个函数
那个实例,这里是ax1,是Axes类,采用ax1所采用的坐标系
‘offset points’:此时坐标表示相对xy的偏移(以点的个数计),不过一般这个是用在textcoords
‘polar’:极坐标类型,在直角坐标系下面也可以用,此时坐标含义为(theta, r) 参数arrowprops含义为连接数据点和注释的箭头的类型,该参数是dictionary类型,该参数含有一个
名为arrowstyle的键,一旦指定该键就会创建一个class matplotlib.patches.FancyArrowPatch类的实例
该键取值可以是一个可用的arrowstyle名字的字符串,也可以是可用的class matplotlib.patches.ArrowStyle类的实例
具体arrowstyle名字的字符串可以参考
http://matplotlib.org/api/patches_api.html#matplotlib.patches.FancyArrowPatch
里面的class matplotlib.patches.FancyArrowPatch类的arrowstyle参数设置 函数返回一个类class matplotlib.text.Annotation()的实例
'''
createPlot.ax1.annotate(nodeTxt, xy = parentPt, xycoords = 'axes fraction', va = 'center', ha = 'center', bbox = nodeType, arrowprops = arrow_args) def createPlot():
fig = plt.figure(1, facecolor='white') #创建新的figure 1, 背景颜色为白色
fig.clf() #清空figure 1的内容
'''
在新建的figure 1里面创建一个1行1列的子figure的网格,并把网格里面第1个子figure的Axes实例axes返回给ax1作为函数createPlot()的属性
,这个属性ax1相当于一个全局变量,可以给plotNode函数使用
'''
createPlot.ax1 = plt.subplot(111, frameon=False)
plotNode('a decision node', (0.5, 0.1), (0.1, 0.5), decisionNode)
plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)
plt.show()
运行createPlot()函数的结果如下:

matplotlib学习笔记的更多相关文章
- Matplotlib学习笔记(二)
原 Matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .car ...
- Matplotlib学习笔记(一)
原 matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .ca ...
- Matplotlib 学习笔记
注:该文是上了开智学堂数据科学基础班的课后做的笔记,主讲人是肖凯老师. 数据绘图 数据可视化的原则 为什么要做数据可视化? 为什么要做数据可视化?因为可视化后获取信息的效率高.为什么可视化后获取信息的 ...
- matplotlib学习笔记.CookBook
matplotlib 是Python下的一个高质量的画图库,可以简单的类似于MATLAB方法构建高质量的图表. 原始文章地址:http://zanyongli.i.sohu.com/blog/view ...
- 科学计算和可视化(numpy及matplotlib学习笔记)
网上学习资料:https://2d.hep.com.cn/1865445/9 numpy库内容: 函数 描述 np.array([x,y,z],dtype=int) 从Python列表和元组创造数组 ...
- matplotlib学习笔记(四)
利用matplotlib可以显示图像 imread()和imshow()提供了简单的图像载入和显示功能. img = plt.imread("xxx.jpg") imread()可 ...
- matplotlib学习笔记(三)
柱状图 柱状图用其每根柱子的长度表示值的大小,它们通常用来比较两组或多组值.下面的程序从文件中读入中国人口的年龄分布数据,并使用柱状图比较男性和女性的年龄分布. import numpy as np ...
- matplotlib 学习笔记02:marker标记详解
本文内容来自于matplotlib官网:matplotlib官网markers资料 This module contains functions to handle markers. Used by ...
- 【python】numpy库和matplotlib库学习笔记
Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默 ...
随机推荐
- java 实现递归实现tree
package app.util; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSO ...
- EChars学习之路1
引入echarts.min.js或者使用CDN https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js 为ECharts准备一个具备大小(宽高 ...
- poj2778(AC自动机+矩阵快速幂)
题意:给你n个字符串,问你长度为m的字符串且字符串中不含有那n个子串的字符串的数量 解题思路:这道题一开始就不太懂,还以为是组合数学的题目,后面看了别人的博客,才知道这是属于AC自动机的另一种用法,是 ...
- [模板] 回文树/回文自动机 && BZOJ3676:[Apio2014]回文串
回文树/回文自动机 放链接: 回文树或者回文自动机,及相关例题 - F.W.Nietzsche - 博客园 状态数的线性证明 并没有看懂上面的证明,所以自己脑补了一个... 引理: 每一个回文串都是字 ...
- 舵机&数据处理&stm32内存之堆栈溢出(遇到的问题)
产品名称:TOWER PRO(辉盛)大扭力舵机MG996R (MG995升级产品)6v/11Kg厂家编号:MG996R产品净重: 55g产品尺寸: 40.7*19.7*42.9mm产品拉力: 9.4k ...
- 解决 MariaDB无密码就可以登录的问题
问题: 困扰了很久的问题,, 使用apt-get来安装mysql,安装好之后发现安装的是 MariaDB,如下,无需密码既可以登录了.即使使用mysqladmin设置好密码,用密码登录可以,不用密码登 ...
- Django 视图系统
Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...
- BZOJ3784树上的路径
题目描述 给定一个N个结点的树,结点用正整数1..N编号.每条边有一个正整数权值.用d(a,b)表示从结点a到结点b路边上经过边的权值.其中要求a<b.将这n*(n-1)/2个距离从大到小排序, ...
- hdu 2829 Lawrence(四边形不等式优化dp)
T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in ...
- 大数质因解:浅谈Miller-Rabin和Pollard-Rho算法
2017-07-19 08:54 Amphetamine:能发一下代码吗? 应我那位谜一样好友的邀约,我打算好好看一看Miller-Rabin和Pollard-Rho算法.很奇怪,各种地方有很多代码描 ...