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 随机数生成的代码的详细分析
May 15 Python
python list转dict示例分享
Jan 28 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
python datetime中strptime用法详解
Aug 29 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
详解非极大值抑制算法之Python实现
Jun 28 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
项目中应用Redis+Php的场景
2016/05/22 PHP
Javascript 对象的解释
2008/11/24 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
vue v-model的用法解析
2020/10/19 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python实现Virginia无密钥解密
2019/03/20 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
Python的历史与优缺点整理
2020/05/26 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
乐观大学生的自我评价
2014/01/10 职场文书
计划生育工作汇报
2014/10/28 职场文书
兵马俑导游词
2015/02/02 职场文书
幼儿园个人总结
2015/02/28 职场文书
教师节晚会主持词
2015/06/30 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
优质服务标语口号
2015/12/26 职场文书
Windows server 2012搭建FTP服务器
2022/04/29 Servers