在本博客中,我们将探讨如何使用 Matplotlib(Python 中流行的绘图库)和 mplcursors(一个为 Matplotlib 图表添加交互式数据光标的库)创建交互式数据可视化。
效果图:
环境设置
首先,请确保已安装 Matplotlib 和 mplcursors。你可以使用以下命令安装它们:
pip install matplotlib mplcursors
代码
import matplotlib.pyplot as plt
import numpy as np
import mplcursors
# 创建数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制曲线图
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='正弦曲线')
line2, = ax.plot(x, y2, label='余弦曲线')
# 添加标签
ax.set_xlabel('X轴')
ax.set_ylabel('Y轴')
ax.legend()
# 悬停事件处理函数
def on_hover(sel):
ind = sel.target.index
x_val = sel.target[0]
y_val = sel.target[1]
label = sel.artist.get_label()
print(f"在{label}上的点 ({x_val:.2f}, {y_val:.2f})")
# 使用 mplcursors 注册悬停事件处理函数
mplcursors.cursor(hover=True).connect("add", on_hover)
# 显示图表
plt.show()
代码解析
我们首先使用 numpy 库创建了样本数据。
使用 Matplotlib 绘制了两条曲线(正弦和余弦)。
添加了标签和图例以增强可读性。
使用 mplcursors 库添加了一个悬停事件,用于打印有关悬停点的信息。
交互式探索
运行代码后,将会弹出一个窗口显示绘制的曲线。将鼠标悬停在曲线上的点上,你将看到有关该点(x,y)坐标以及所在曲线的信息。
这种交互功能对于详细探索数据点非常有用。
随意尝试不同的数据集并根据需要自定义代码。
愉快编码!