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读写excel的方法
Nov 18 Python
python登陆asp网站页面的实现代码
Jan 14 Python
Python中的hypot()方法使用简介
May 18 Python
Python Flask-web表单使用详解
Nov 18 Python
Django框架多表查询实例分析
Jul 04 Python
Flask框架信号用法实例分析
Jul 24 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
python 多进程和协程配合使用写入数据
Oct 30 Python
Python数据可视化之用Matplotlib绘制常用图形
Jun 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
MVC模式的PHP实现
2006/10/09 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
深入理解NumPy简明教程---数组1
2016/12/17 Python
彻底搞懂Python字符编码
2018/01/23 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Django实现基于类的分页功能
2019/10/31 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
keras输出预测值和真实值方式
2020/06/27 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
违反学校规定检讨书
2014/01/18 职场文书
高级编程求职信模板
2014/02/16 职场文书
大家访活动实施方案
2014/03/10 职场文书
中学生寄语大全
2014/04/03 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
开场白怎么写
2015/06/01 职场文书