Python Matplotlib折线图绘制详解:图例、样式与标记配置
本文详细介绍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()

总结
以上就是本文的全部内容,希望这些内容能对您的学习或工作有所帮助。如有任何疑问,欢迎留言交流,感谢大家对本站的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









