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 相关文章推荐
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
解决DataFrame排序sort的问题
Jun 07 Python
Python实现的特征提取操作示例
Dec 03 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
Mar 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 使用curl提交json格式数据
2013/06/29 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
python super的使用方法及实例详解
2019/09/25 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
毕业生自我鉴定
2013/12/04 职场文书
高中生期末评语
2014/01/28 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
python spilt()分隔字符串的实现示例
2021/05/21 Python
Python机器学习之底层实现KNN
2021/06/20 Python