python使用matplotlib绘制折线图教程


Posted in Python onFebruary 08, 2017

matplotlib简介

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。

它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之后都有源程序。因此如果你需要绘制某种类型的图,只需要在这个页面中浏览/复制/粘贴一下,基本上都能搞定。

在Linux下比较著名的数据图工具还有gnuplot,这个是免费的,Python有一个包可以调用gnuplot,但是语法比较不习惯,而且画图质量不高。

而 Matplotlib则比较强:Matlab的语法、python语言、latex的画图质量(还可以使用内嵌的latex引擎绘制的数学公式)。

绘图库Matplotlib的安装方法:点击这里

matplotlib绘制折线图

1. line chart

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y1, y2 = np.sin(x), np.cos(x)

plt.plot(x, y1)
plt.plot(x, y2)

plt.title('line chart')
plt.xlabel('x')
plt.ylabel('y')

plt.show()

python使用matplotlib绘制折线图教程

2. 图例

在plot的时候指定label,然后调用legend方法可以绘制图例。例如:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y1, y2 = np.sin(x), np.cos(x)

plt.plot(x, y1, label='y = sin(x)')
plt.plot(x, y2, label='y = cos(x)')
plt.legend()
plt.show()

python使用matplotlib绘制折线图教程

legend方法可接受一个loc关键字参数来设定图例的位置,可取值为数字或字符串:

     0: ‘best'

     1: ‘upper right'

     2: ‘upper left'

     3: ‘lower left'

     4: ‘lower right'

     5: ‘right'

     6: ‘center left'

     7: ‘center right'

     8: ‘lower center'

     9: ‘upper center'

     10: ‘center'

3. 线的样式

(1)颜色

plot方法的关键字参数color(或c)用来设置线的颜色。可取值为:

1、颜色名称或简写

     b: blue

     g: green

     r: red

     c: cyan

     m: magenta

     y: yellow

     k: black

     w: white

2、#rrggbb

3、(r, g, b) 或 (r, g, b, a),其中 r g b a 取均为[0, 1]之间

4、[0, 1]之间的浮点数的字符串形式,表示灰度值。0表示黑色,1表示白色

(2)样式

plot方法的关键字参数linestyle(或ls)用来设置线的样式。可取值为:

  • -, solid
  • --, dashed
  • -., dashdot
  • :, dotted
  • '', ' ', None

(3)粗细

设置plot方法的关键字参数linewidth(或lw)可以改变线的粗细,其值为浮点数。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 100)
y1, y2 = np.sin(x), np.cos(x)

plt.plot(x, y1, c='r', ls='--', lw=3)
plt.plot(x, y2, c='#526922', ls='-.')
plt.show()

python使用matplotlib绘制折线图教程

4. marker

以下关键字参数可以用来设置marker的样式:

  • marker
  • markeredgecolor 或 mec
  • markeredgewidth 或 mew
  • markerfacecolor 或 mfc
  • markerfacecoloralt 或 mfcalt
  • markersize 或 ms

其中marker可取值为:

  • '.': point marker
  • ',': pixel marker
  • 'o': circle marker
  • 'v': triangle_down marker
  • '^': triangle_up marker
  • '<': triangle_left marker
  • '>': triangle_right marker
  • '1': tri_down marker
  • '2': tri_up marker
  • '3': tri_left marker
  • '4': tri_right marker
  • 's': square marker
  • 'p': pentagon marker
  • '*': star marker
  • 'h': hexagon1 marker
  • 'H': hexagon2 marker
  • '+': plus marker
  • 'x': x marker
  • 'D': diamond marker
  • 'd': thin_diamond marker
  • '|': vline marker
  • '_': hline marker

例如:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 10)
y1, y2 = np.sin(x), np.cos(x)

plt.plot(x, y1, marker='o', mec='r', mfc='w')
plt.plot(x, y2, marker='*', ms=10)
plt.show()

python使用matplotlib绘制折线图教程

另外,marker关键字参数可以和color以及linestyle这两个关键字参数合并为一个字符串。例如:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 2 * np.pi, 10)
y1, y2 = np.sin(x), np.cos(x)

plt.plot(x, y1, 'ro-')
plt.plot(x, y2, 'g*:', ms=10)
plt.show()

python使用matplotlib绘制折线图教程

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python实现通过代理服务器访问远程url的方法
Apr 29 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
利用Python如何批量更新服务器文件
Jul 29 Python
详解python分布式进程
Oct 08 Python
python语言元素知识点详解
May 15 Python
基于Python打造账号共享浏览器功能
May 30 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python可变集合和不可变集合的构造方法大全
Dec 06 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 #Python
python3.5实现socket通讯示例(TCP)
Feb 07 #Python
Python中字典的setdefault()方法教程
Feb 07 #Python
Python连接数据库学习之DB-API详解
Feb 07 #Python
使用Python中的tkinter模块作图的方法
Feb 07 #Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 #Python
详解python中字典的循环遍历的两种方式
Feb 07 #Python
You might like
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php递归创建目录的方法
2015/02/02 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
JS高级技巧(简洁版)
2018/07/29 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
利用js canvas实现五子棋游戏
2020/10/11 Javascript
urllib2自定义opener详解
2014/02/07 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
python小程序实现刷票功能详解
2019/07/17 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
Java servlet面试题
2012/03/04 面试题
导游实习生自荐书
2014/01/28 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
2014村务公开实施方案
2014/02/25 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
社团活动总结模板
2014/06/30 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
自我推荐信格式模板
2015/03/24 职场文书
理想国读书笔记
2015/06/25 职场文书
CAD实训总结范文
2015/08/03 职场文书
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers