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服务器拒绝服务攻击代码
Jan 16 Python
Python break语句详解
Mar 11 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
基于python操作ES实例详解
Nov 16 Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 Python
Python定时从Mysql提取数据存入Redis的实现
May 03 Python
如何在Windows中安装多个python解释器
Jun 16 Python
python某漫画app逆向
Mar 31 Python
如何用Python搭建gRPC服务
Jun 30 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
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
详谈PHP面向对象中常用的关键字和魔术方法
2017/02/04 PHP
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
ES2020系列之空值合并运算符 '??'
2020/07/22 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python验证码识别处理实例
2015/12/28 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python实现小球弹跳效果
2019/05/10 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python代码注释规范代码实例解析
2020/08/14 Python
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
新员工培训个人的自我评价
2013/10/09 职场文书
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
舞蹈比赛获奖感言
2014/02/04 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
诉前财产保全担保书
2014/05/20 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
2019送给家人们的中秋节祝福语
2019/08/15 职场文书
vue里使用create, mounted调用方法
2022/04/26 Vue.js