Python Matplotlib折线图绘制详解:图例、样式与标记配置

小林子
小林子
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍Python中Matplotlib库绘制折线图的核心技巧。涵盖如何添加并自定义图例位置,通过color、linestyle和linewidth参数控制线条颜色、样式及粗细,以及使用marker系列参数设置数据点标记形状与外观。提供完整代码示例与参数对照表,帮助开发者快速掌握高质量数据可视化方法。

Matplotlib简介

Matplotlib是Python中最具影响力的绘图库之一,它提供了一套与MATLAB命令高度相似的API,非常适合进行交互式图形绘制。此外,该库还能作为绘图控件轻松嵌入到GUI应用程序中。

其文档非常完善,Gallery页面展示了上百个缩略图示例,每个示例均附有源程序。因此,当您需要绘制特定类型的图表时,只需在该页面浏览、复制并粘贴相关代码,通常即可解决问题。

在Linux环境下,较为知名的数据可视化工具包括gnuplot,该软件免费但Python调用包的语法较为晦涩,且绘图质量相对一般。

相比之下,Matplotlib表现更为强劲:它兼具MATLAB的语法简洁性、Python语言的灵活性,以及LaTeX级别的绘图质量(支持使用内置LaTeX引擎绘制数学公式)。

关于Matplotlib绘图库的安装方法,请点击此处查看详细教程。

使用Matplotlib绘制折线图

1. 基础折线图

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()

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()


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()


4. 标记(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(六边形1标记)
  • 'H': hexagon2 marker(六边形2标记)
  • '+': 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()


此外,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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。