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内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
python调用百度语音识别api
Aug 30 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
python爬虫超时的处理的实例
Dec 19 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
Python pandas库中的isnull()详解
Dec 26 Python
Django在Model保存前记录日志实例
May 14 Python
PyQt5实现画布小程序
May 30 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
Javascript Select操作大集合
2009/05/26 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
js创建对象的方式总结
2015/01/10 Javascript
javascript常用功能汇总
2015/07/05 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
Python3遍历目录树实现方法
2015/05/22 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
毕业寄语大全
2014/04/09 职场文书
技术负责人任命书
2014/06/05 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
Python time库的时间时钟处理
2021/05/02 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python