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基于smtplib实现异步发送邮件服务
May 28 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python使用OpenCV进行标定
May 08 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
python程序封装为win32服务的方法
Mar 07 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 Python
Python 线程池模块之多线程操作代码
May 20 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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 echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
js实现消息滚动效果
2017/01/18 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
python读取与处理netcdf数据方式
2020/02/14 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Django配置跨域并开发测试接口
2020/11/04 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
数组越界问题
2015/10/21 面试题
2014年幼儿园元旦活动方案
2014/02/13 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
部门年终奖分配方案
2014/05/07 职场文书
禁止酒驾标语
2014/06/25 职场文书
中秋节晚会开场白
2015/05/29 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
MySQL多表查询机制
2022/03/17 MySQL