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 pickle 和 shelve模块的用法
Sep 16 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
详解python编译器和解释器的区别
Jun 24 Python
Python MOCK SERVER moco模拟接口测试过程解析
Apr 13 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
对象析构函数__del__在Python中何时使用
Mar 22 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中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
vue.js的安装方法
2017/05/12 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python实现自动登录后台管理系统
2018/10/18 Python
python write无法写入文件的解决方法
2019/01/23 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
护理专业毕业生推荐信
2013/10/31 职场文书
个人收入证明范本
2014/01/12 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
教师党员承诺书2015
2015/01/21 职场文书
运动会5000米加油稿
2015/07/21 职场文书
2019感恩宣传标语!
2019/07/05 职场文书