您能在seaborn中突出显示分类散点图中的具体观察结果吗?

问题描述 投票:0回答:1

我有 8 个类别,并且我已经使用 sns.catplot 绘制了分类散点图。有没有办法突出显示每个类别中的特定观察结果,以将位置与其他观察结果进行比较?

python seaborn scatter-plot categorical-data plot-annotations
1个回答
2
投票

您可以使用文本注释,对

annotate
返回的
ax
对象的
matplotlib.axes.Axes
(
FaceGrid
) 属性使用
seaborn.catplot
方法。例如,下面的代码通过在数据框中使用布尔选择来注释正常样本上大于 0.5 的观测值,
df[df.y > .5]
,并且
df.apply(...)
将注释所有点。

import pandas as pd
import numpy as np
import seaborn as sns 

df = pd.DataFrame(data={'x': range(10), 'y':np.random.normal(0,1,size=10)})
df['odd'] = df.x.apply(lambda x: x % 2)

g = sns.catplot(data=df, x='x', y='y', hue='odd')

df[df.y > .5].apply(lambda p: g.ax.annotate(f'({p.x}, {round(p.y, 2)})', (p.x, p.y)), axis=1)

您可以在

annotate
方法这里查看更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.