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 logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Python TestCase中的断言方法介绍
May 02 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
python 求10个数的平均数实例
Dec 16 Python
Python tkinter常用操作代码实例
Jan 03 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
Python 如何在字符串中插入变量
Aug 01 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 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类常量用法实例分析
2015/07/09 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
小程序hover-class点击态效果实现
2019/02/26 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python中文件遍历的两种方法
2014/06/16 Python
简单学习Python time模块
2016/04/29 Python
python实现简单爬虫功能的示例
2016/10/24 Python
Python 递归函数详解及实例
2016/12/27 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
岗位职责的定义
2013/11/10 职场文书
基层工作经历证明
2014/01/13 职场文书
保护环境倡议书
2014/04/14 职场文书
2016婚礼主持词开场白
2015/11/24 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
深入理解python多线程编程
2021/04/18 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python