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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
简单实现python爬虫功能
Dec 31 Python
Python深入06——python的内存管理详解
Dec 07 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python零基础入门学习之输入与输出
Apr 03 Python
Python基础知识点 初识Python.md
May 14 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
python同步windows和linux文件
Aug 29 Python
python解包用法详解
Feb 17 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
JSON 数据格式介绍
2012/01/13 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python中实现k-means聚类算法详解
2017/11/11 Python
python GUI实例学习
2017/11/21 Python
Python科学画图代码分享
2017/11/29 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
Python类反射机制使用实例解析
2019/12/30 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
安全承诺书范文
2014/03/26 职场文书
大学生心理活动总结
2014/07/04 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
单位介绍信格式
2015/01/31 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
Java 多态分析
2022/04/26 Java/Android