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绘制人人网好友关系图示例
Apr 01 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
对python的bytes类型数据split分割切片方法
Dec 04 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Python Django基础二之URL路由系统
Jul 18 Python
wxPython实现绘图小例子
Nov 19 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
php使用正则验证中文
2016/04/06 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
2017/02/20 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
JS一次前端面试经历记录
2020/03/19 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python tkinter常用操作代码实例
2020/01/03 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
美国求婚钻戒网站:Super Jeweler
2016/08/27 全球购物
禁烟标语大全
2014/06/11 职场文书
拓展训练激励口号
2014/06/17 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
先进单位申报材料
2014/12/25 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS