散点图是可视化两个变量之间关系的强大工具。但是,有时通过连接数据点来增强可视化效果会很有帮助,从而突出趋势和模式。本教程探讨了在 Matplotlib 中实现此目标的几种方法,重点关注清晰度和最佳实践。
目录
组合 scatter()
和 plot()
最直接的方法是同时使用 scatter()
和 plot()
函数。这样可以独立控制点和连接线的显示效果。至关重要的是,确保在两个函数 *之后* 调用 plt.show()
以正确显示这两个元素。
import matplotlib.pyplot as plt
import numpy as np
# 样本数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
# 创建散点图
plt.scatter(x, y, color='blue', label='数据点')
# 用线连接点
plt.plot(x, y, color='red', linestyle='-', linewidth=2, label='趋势线')
# 添加标签和图例
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.title("带有连接线的散点图")
plt.legend()
# 显示图形
plt.show()
使用 plot()
自定义线型
matplotlib.pyplot.plot()
函数提供了对线型美观的广泛控制。linestyle
属性允许您指定各种线型(实线、虚线、点线等),而其他参数如 color
和 linewidth
则进一步细化了外观。可以添加标记以直接突出显示线上的数据点。
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
plt.plot(x, y, linestyle='--', color='green', marker='o', markersize=8, label='自定义线')
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.title("自定义线图")
plt.legend()
plt.show()
使用 zorder
控制图层顺序
组合使用 scatter()
和 plot()
时,绘图顺序并不总是与执行顺序匹配。zorder
关键字参数控制绘图元素的堆叠顺序。较高的 zorder
值绘制在顶部。这对于确保即使散点图叠加在线上也能清晰可见至关重要。
import matplotlib.pyplot as plt
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 1, 3, 5])
# 线首先绘制,位于散点图的后面
plt.plot(x, y, zorder=1, color='purple', label='底层趋势')
# 散点图绘制在顶部
plt.scatter(x, y, zorder=2, color='orange', label='数据点')
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.title("使用 zorder 控制图层顺序")
plt.legend()
plt.show()
通过掌握这些技巧,您可以创建清晰、信息丰富且视觉上具有吸引力的可视化效果,有效地传达数据中的各个数据点和整体趋势。