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实现dict版图遍历示例
Feb 19 Python
Python写的一个简单DNS服务器实例
Jun 04 Python
整理Python最基本的操作字典的方法
Apr 24 Python
Python的多态性实例分析
Jul 07 Python
python3实现抓取网页资源的 N 种方法
May 02 Python
Python基础之getpass模块详细介绍
Aug 10 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
python3 map函数和filter函数详解
Aug 26 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
解决keras加入lambda层时shape的问题
Jun 11 Python
用Python编写简单的gRPC服务的详细过程
Jul 04 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获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
javascript关于继承解析
2016/05/10 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
python 垃圾收集机制的实例详解
2017/08/20 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python中format函数如何使用
2020/06/22 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
晚宴邀请函范文
2014/01/15 职场文书
人事助理自荐信
2014/02/02 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
公司总经理岗位职责
2014/03/15 职场文书
党员作风建设自查报告
2014/10/23 职场文书
表扬稿格式范文
2015/01/16 职场文书
求职信如何撰写?
2019/05/22 职场文书