python使用matplotlib绘制折线图教程

作者:daisy 时间:2022-06-28 11:26:37 

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,matplotlib,折线图
0
投稿

猜你喜欢

  • MySQL之导出整个及单个表数据的操作

    2024-01-17 00:52:02
  • WAP设计基础

    2011-01-06 12:13:00
  • Golang中slice删除元素的性能对比

    2024-05-05 09:33:03
  • 有效的提高编程技能的12个方法

    2023-07-15 09:11:40
  • Python Pandas对缺失值的处理方法

    2021-03-18 19:38:55
  • 基于Python编写一个自动关机程序

    2023-07-30 08:19:20
  •  python中字符串的常见操作总结(二)

    2023-04-08 17:17:35
  • XML+ JS创建树形菜单

    2013-08-22 08:30:17
  • JavaScript实现简单图片轮播效果

    2024-04-22 13:02:05
  • python使用openpyxl操作excel的方法步骤

    2022-09-30 20:59:24
  • 深入理解Golang Channel 的底层结构

    2024-02-18 19:29:13
  • Python多进程协作模拟实现流程

    2021-07-01 17:52:38
  • php mailer类调用远程SMTP服务器发送邮件实现方法

    2023-08-16 16:09:18
  • go run main.go 一直提示找不到包的解决方案

    2024-02-14 00:07:41
  • mysql字符集和数据库引擎修改方法分享

    2024-01-21 22:02:49
  • 使用python画个小猪佩奇的示例代码

    2023-08-25 17:27:52
  • Python八个自动化办公的技巧

    2023-09-14 07:58:19
  • MySQL数据库本地备份和双机相互备份

    2008-05-27 12:25:00
  • 实现php删除链表中重复的结点

    2023-09-05 09:36:15
  • HTTP缓存之ETag使用经验及效果

    2023-10-08 22:36:04
  • asp之家 网络编程 m.aspxhome.com