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网络编程学习笔记(五):socket的一些补充
Jun 09 Python
python通过yield实现数组全排列的方法
Mar 18 Python
python使用datetime模块计算各种时间间隔的方法
Mar 24 Python
利用Python实现网络测试的脚本分享
May 26 Python
Python字典及字典基本操作方法详解
Jan 30 Python
python将回车作为输入内容的实例
Jun 23 Python
Python实现登陆文件验证方法
Oct 06 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
python3实现单目标粒子群算法
Nov 14 Python
Mysql数据库反向生成Django里面的models指令方式
May 18 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
python 统计代码耗时的几种方法分享
Apr 02 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面向对象程序设计之类常量用法实例
2014/08/20 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
毕业生就业自荐信
2013/12/04 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
计算机相关的自我评价
2014/01/15 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
房屋所有权证明
2014/10/20 职场文书
贪污检举信范文
2015/03/02 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫