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 21 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python清除字符串里非数字字符的方法
Jul 02 Python
Python对多属性的重复数据去重实例
Apr 18 Python
python中csv文件的若干读写方法小结
Jul 04 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python ddt数据驱动最简实例代码
Feb 22 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
python爬取基于m3u8协议的ts文件并合并
Apr 26 Python
Python实现括号匹配方法详解
Feb 10 Python
pytorch实现手写数字图片识别
May 20 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
快速入门python学习笔记
2017/12/06 Python
Django中cookie的基本使用方法示例
2018/02/03 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Lentiamo比利时:便宜的隐形眼镜
2020/02/14 全球购物
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
关于感谢信的范文
2015/01/23 职场文书
合作合同协议书范本
2015/01/27 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书