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列表的增删改查实例代码
Jan 30 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
基于Django与ajax之间的json传输方法
May 29 Python
Python下简易的单例模式详解
Apr 08 Python
django解决订单并发问题【推荐】
Jul 31 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Python生成九宫格图片的示例代码
Apr 14 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP实现简易计算器功能
2020/08/28 PHP
刷新时清空文本框内容的js代码
2007/04/23 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
Spring boot 和Vue开发中CORS跨域问题解决
2018/09/05 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
微信小程序实现页面浮动导航
2020/01/08 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python 操作文件的基本方法总结
2017/08/10 Python
Python读写zip压缩文件的方法
2018/08/29 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
2019/06/03 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
文明学生事迹材料
2014/01/29 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技