📜  悬停显示散景中的所有 Y 值 - Python (1)

📅  最后修改于: 2023-12-03 14:54:22.254000             🧑  作者: Mango

悬停显示散景中的所有 Y 值 - Python

在处理数据可视化中,经常会需要悬停显示折线图中的数据点的数值。那么如果是散点图呢?本篇介绍如何利用Python实现在散点图中悬停显示所有Y值的效果。

准备工作

首先,我们需要准备一些Python库以及数据。在本例中,我们使用pandas库读取csv文件中的数据,并使用matplotlibseaborn库绘制散点图。代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

#读取csv文件
df = pd.read_csv('data.csv')

#绘制散点图
plt.figure(figsize=(8, 8))
sns.scatterplot(x='X',y='Y',data=df)
plt.show()

这里我们使用了一个名为data.csv的文件中的数据。该文件包含两个列:X和Y。数据如下:

X,Y
1,6
2,6
3,7
4,6
5,7
6,6
7,7
8,6
9,7
10,6
实现效果

接下来,我们要在散点图中悬停显示每个数据点的Y值。为了实现这个目标,我们需要借助mplcursors库。

!pip install mplcursors

在安装完mplcursors后,我们只需要在scatterplot方法之后添加以下代码:

import mplcursors

cursor = mplcursors.cursor()
@cursor.connect("add")
def _(sel):
    sel.annotation.set_text(sel.artist.get_offsets()[sel.target.index][1])

最后的完整代码片段如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import mplcursors

#读取csv文件
df = pd.read_csv('data.csv')

#绘制散点图
plt.figure(figsize=(8, 8))
sns.scatterplot(x='X',y='Y',data=df)

#添加悬停显示
cursor = mplcursors.cursor()
@cursor.connect("add")
def _(sel):
    sel.annotation.set_text(sel.artist.get_offsets()[sel.target.index][1])

plt.show()

现在我们可以看到散点图中每个数据点都可以悬停显示Y值了。

效果图

结束语

在本篇文章中,我们介绍了如何使用Python实现在散点图中悬停显示所有Y值的效果。通过使用mplcursors库,我们可以轻松实现这个目标,在处理散点图时非常有用。