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系列之教你如何根据图片生成字符画
May 23 Python
Python的Urllib库的基本使用教程
Apr 30 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
python下载微信公众号相关文章
Feb 26 Python
Django密码存储策略分析
Jan 09 Python
pytorch梯度剪裁方式
Feb 04 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
安装python3.7编译器后如何正确安装opnecv的方法详解
Jun 16 Python
Django Form常用功能及代码示例
Oct 13 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
Python中tqdm的使用和例子
Sep 23 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数据库密码的找回的步骤
2011/01/12 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
smarty简单分页的实现方法
2014/10/27 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python多进程同步简单实现代码
2016/04/27 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
使用python编写监听端
2018/04/12 Python
python 批量修改/替换数据的实例
2018/07/25 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python绘制地震散点图
2019/06/18 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python猜数字算法题详解
2020/03/01 Python
Pytorch高阶OP操作where,gather原理
2020/04/30 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
学前教育教师求职自荐信
2013/09/22 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书