Python Matplotlib库入门指南


Posted in Python onMay 18, 2015

Matplotlib简介

Matplotlib是一个Python工具箱,用于科学计算的数据可视化。借助它,Python可以绘制如Matlab和Octave多种多样的数据图形。最初是模仿了Matlab图形命令, 但是与Matlab是相互独立的.
通过Matplotlib中简单的接口可以快速的绘制2D图表

初试Matplotlib

Matplotlib中的pyplot子库提供了和matlab类似的绘图API.

import matplotlib.pyplot as plt   #导入pyplot子库

plt.figure(figsize=(8, 4))  #创建一个绘图对象, 并设置对象的宽度和高度, 如果不创建直接调用plot, Matplotlib会直接创建一个绘图对象

plt.plot([1, 2, 3, 4])  #此处设置y的坐标为[1, 2, 3, 4], 则x的坐标默认为[0, 1, 2, 3]在绘图对象中进行绘图, 可以设置label, color和linewidth关键字参数

plt.ylabel('some numbers')  #给y轴添加标签, 给x轴加标签用xlable

plt.title("hello");  #给2D图加标题

plt.show()  #显示2D图

基础绘图

绘制折线图

与所选点的坐标有关

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

x = [0, 1, 2, 4, 5, 6]

y = [1, 2, 3, 2, 4, 1]

plt.plot(x, y, '-*r')  # 虚线, 星点, 红色

plt.xlabel("x-axis")

plt.ylabel("y-axis")

plt.show()

更改线的样式查看plot函数参数设置 
多线图
只需要在plot函数中传入多对x-y坐标对就能画出多条线
# -*- coding: utf-8 -*-

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

x = [0, 1, 2, 4, 5, 6]

y = [1, 2, 3, 2, 4, 1]

z = [1, 2, 3, 4, 5, 6]

plt.plot(x, y, '--*r', x, z, '-.+g')

plt.xlabel("x-axis")

plt.ylabel("y-axis")

plt.title("hello world")

plt.show()

柱状图

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

x = [0, 1, 2, 4, 5, 6]

y = [1, 2, 3, 2, 4, 1]

z = [1, 2, 3, 4, 5, 6]

plt.bar(x, y)

plt.xlabel("x-axis")

plt.ylabel("y-axis")

plt.show()

子图

subplot()函数指明numrows行数, numcols列数, fignum图个数. 图的个数不能超过行数和列数之积

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

x = [0, 1, 2, 4, 5, 6]

y = [1, 2, 3, 2, 4, 1]

z = [1, 2, 3, 4, 5, 6]

plt.figure(1)

plt.subplot(211)

plt.plot(x, y, '-+b')

plt.subplot(212)

plt.plot(x, z, '-.*r')

plt.show()

文本添加

当需要在图片上调价文本时需要使用text()函数, 还有xlabel(), ylabel(), title()函数

text()函数返回matplotlib.text.Text, 函数详细解释

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

x = [0, 1, 2, 4, 5, 6]

y = [1, 2, 3, 2, 4, 1]

plt.plot(x, y, '-.*r') 

plt.text(1, 2, "I'm a text")  //前两个参数表示文本坐标, 第三个参数为要添加的文本

plt.show()

图例简介
legend()函数实现了图例功能, 他有两个参数, 第一个为样式对象, 第二个为描述字符

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

line_up, = plt.plot([1,2,3], label='Line 2')

line_down, = plt.plot([3,2,1], label='Line 1')

plt.legend(handles=[line_up, line_down])

plt.show()

或者调用set_label()添加图例
# -*- coding: utf-8 -*-

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

line, = plt.plot([1, 2, 3])

line.set_label("Label via method")

plt.legend()

plt.show()

同时对多条先添加图例

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

#!/usr/bin/env python

import numpy as np

import matplotlib.pyplot as plt 

line1, = plt.plot([1, 2, 3])

line2, = plt.plot([3, 2, 1], '--b')

plt.legend((line1, line2), ('line1', 'line2'))

plt.show()

更多图例设置可以参考官方图例教程
Python 相关文章推荐
Windows安装Python、pip、easy_install的方法
Mar 05 Python
详解Python import方法引入模块的实例
Aug 02 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
Python迭代器与生成器基本用法分析
Jul 26 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python3.7调试的实例方法
Jul 21 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
python 常用的异步框架汇总整理
Jun 18 Python
解读Python中degrees()方法的使用
May 18 #Python
python修改操作系统时间的方法
May 18 #Python
Python中的hypot()方法使用简介
May 18 #Python
Python批量转换文件编码格式
May 17 #Python
Python实现批量下载文件
May 17 #Python
python抓取最新博客内容并生成Rss
May 17 #Python
Python实现遍历数据库并获取key的值
May 17 #Python
You might like
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
Python 可爱的大小写
2008/09/06 Python
haskell实现多线程服务器实例代码
2013/11/26 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
Jupyter加载文件的实现方法
2020/04/14 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
好的演讲稿开场白
2013/12/30 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
银行自荐信怎么写
2015/03/05 职场文书
研究生导师推荐信
2015/03/25 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
DSP接收机前端设想
2022/04/05 无线电