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自然语言编码转换模块codecs介绍
Apr 08 Python
使用Python编写一个模仿CPU工作的程序
Apr 16 Python
详细解读Python中的__init__()方法
May 02 Python
Python Socket使用实例
Dec 18 Python
Python用5行代码写一个自定义简单二维码
Oct 21 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
详解Python做一个名片管理系统
Mar 14 Python
set在python里的含义和用法
Jun 24 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
使用 Python 遍历目录树的方法
Feb 29 Python
python自动化测试通过日志3分钟定位bug
Nov 20 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 json_encode中文乱码问题的解决办法
2013/09/09 PHP
PHP错误处理函数
2016/04/03 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
利用Query+bootstrap和js两种方式实现日期选择器
2017/01/10 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
tween.js缓动补间动画算法示例
2018/02/13 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
angular 服务随记小结
2019/05/06 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
Python队列的定义与使用方法示例
2017/06/24 Python
python3.x上post发送json数据
2018/03/04 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Python @property及getter setter原理详解
2020/03/31 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
UML设计模式笔试题
2014/06/07 面试题
Python面试题集
2012/03/08 面试题
棉花姑娘教学反思
2014/02/15 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android
DQL数据查询语句使用示例
2022/12/24 MySQL