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 相关文章推荐
Python显示进度条的方法
Sep 20 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
Python绘制KS曲线的实现方法
Aug 13 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
python程序变成软件的实操方法
Jun 24 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
Django的Modelforms用法简介
Jul 27 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
python批量生成条形码的示例
Oct 10 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
python中的plt.cm.Paired用法说明
May 31 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
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
深入浅析安装PhpStorm并激活的步骤详解
2020/09/17 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
koa源码中promise的解读
2018/11/13 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python timeit模块原理及使用方法
2020/10/10 Python
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
开业庆典主持词
2014/03/21 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
会计专业自荐书
2014/07/08 职场文书
2014年安全员工作总结
2014/11/13 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
python爬虫selenium模块详解
2021/03/30 Python
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
python中urllib包的网络请求教程
2022/04/19 Python