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中bisect模块用法实例
Sep 25 Python
python使用正则表达式分析网页中的图片并进行替换的方法
Mar 26 Python
python中列表元素连接方法join用法实例
Apr 07 Python
Python操作Excel之xlsx文件
Mar 24 Python
Python实现的字典值比较功能示例
Jan 08 Python
简单了解python PEP的一些知识
Jul 13 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
Python文件时间操作步骤代码详解
Apr 13 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
Python中的xlrd模块使用原理解析
May 21 Python
Django视图、传参和forms验证操作
Jul 15 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完整的日历类(CLASS)
2006/11/27 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
2017/07/14 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
基于Python的OCR实现示例
2020/04/03 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
英国现代市场:ARKET
2019/04/10 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
物业门卫岗位职责
2013/12/28 职场文书
大学信息公开实施方案
2014/03/09 职场文书
教师网络培训心得体会
2016/01/09 职场文书
python获取对象信息的实例详解
2021/07/07 Python
Python集合的基础操作
2021/11/01 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js