使用 Matplotlib 和 mplcursors 创建交互式数据可视化,鼠标悬停动态显示数据

在本博客中,我们将探讨如何使用 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)坐标以及所在曲线的信息。

这种交互功能对于详细探索数据点非常有用。

随意尝试不同的数据集并根据需要自定义代码。

愉快编码!

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 18:54:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 18:54:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 18:54:05       82 阅读
  4. Python语言-面向对象

    2023-12-16 18:54:05       91 阅读

热门阅读

  1. CoPilot究竟如何使用?

    2023-12-16 18:54:05       62 阅读
  2. PostgreSQL DBA之数据库指标监控

    2023-12-16 18:54:05       50 阅读
  3. go context.todo生成默认空的上下文

    2023-12-16 18:54:05       42 阅读
  4. 如何判断服务器能容纳多少人同时访问

    2023-12-16 18:54:05       43 阅读
  5. Js WebSocket类,收发Json,带心跳,断线重连

    2023-12-16 18:54:05       52 阅读
  6. 动态规划算法解决背包问题(Python)

    2023-12-16 18:54:05       56 阅读
  7. 软件测试计划文档

    2023-12-16 18:54:05       58 阅读
  8. JVM源码剖析之registerNatives方法

    2023-12-16 18:54:05       55 阅读
  9. 【参数汇总】mysql服务端/客户端常见优化参数

    2023-12-16 18:54:05       54 阅读
  10. CAN 四: CAN相关HAL库驱动介绍

    2023-12-16 18:54:05       61 阅读
  11. C语言中逻辑运算符

    2023-12-16 18:54:05       62 阅读
  12. 软件测试基础学习笔记

    2023-12-16 18:54:05       64 阅读
  13. Docker卷和挂载目录的区别

    2023-12-16 18:54:05       52 阅读