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开发vim插件及心得分享
Nov 04 Python
零基础写python爬虫之神器正则表达式
Nov 06 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
Python面向对象之类的内置attr属性示例
Dec 14 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
使用python+whoosh实现全文检索
Dec 09 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
python 函数中的参数类型
Feb 11 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 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的一个登录的类 [推荐]
2007/03/16 PHP
php IP及IP段进行访问限制的代码
2008/12/17 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
2014/05/29 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
javascript 判断当前浏览器版本并判断ie版本
2017/02/17 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
html5的画布canvas——画出简单的矩形、三角形实例代码
2013/06/09 HTML / CSS
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
宝信软件JAVA工程师面试经历
2012/08/19 面试题
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
国富论读书笔记
2015/06/26 职场文书
ICOM R71E和R72E图文对比解说
2022/04/07 无线电