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内置函数dir详解
Apr 14 Python
Python使用matplotlib绘制动画的方法
May 20 Python
Python日期的加减等操作的示例
Aug 15 Python
Python实现求数列和的方法示例
Jan 12 Python
python学习入门细节知识点
Mar 29 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python子线程退出及线程退出控制的代码
Oct 16 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
python游戏开发的五个案例分享
Mar 09 Python
教你用Python matplotlib库制作简单的动画
Jun 11 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PDO::errorInfo讲解
2019/01/28 PHP
js读写(删除)Cookie实例详解
2013/04/17 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
python多线程之事件Event的使用详解
2018/04/27 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
法国春天百货官网:Printemps.com
2020/06/29 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
给女朋友的道歉信
2014/01/10 职场文书
经销商培训邀请函
2014/01/21 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
上班玩手机检讨书
2014/02/17 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
汽车销售员工作总结
2015/08/12 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
浅析Python实现DFA算法
2021/06/26 Python
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS