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 29 Python
Python工程师面试必备25条知识点
Jan 17 Python
python使用代理ip访问网站的实例
May 07 Python
python中ASCII码和字符的转换方法
Jul 09 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
解决Python中回文数和质数的问题
Nov 24 Python
Python log模块logging记录打印用法解析
Jan 20 Python
python实现画图工具
Aug 27 Python
浅析python函数式编程
Sep 26 Python
python性能测试工具locust的使用
Dec 28 Python
Python数据模型与Python对象模型的相关总结
Jan 26 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP小教程之实现链表
2014/06/09 PHP
PHP实现微信退款功能
2018/10/02 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
vue多次循环操作示例
2019/02/08 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
使用Python的内建模块collections的教程
2015/04/28 Python
详解Python验证码识别
2016/01/25 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
浅谈Python type的使用
2019/11/19 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
python 制作简单的音乐播放器
2020/11/25 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
业务总经理岗位职责
2014/02/03 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
学习张林森心得体会
2014/09/10 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
Golang实现可重入锁的示例代码
2022/05/25 Golang