gpt4 book ai didi

python - Seaborn 在点图中可视化点计数

转载 作者:行者123 更新时间:2023-12-01 00:51:42 25 4
gpt4 key购买 nike

如何在seaborn的点图中添加点数?

df = pd.DataFrame({'group':[0,1,1],'percentage':[0.5, .3,.7],'value_group':[1,2,3], 'count':[1, 10, 20]})
df['value_group'] = pd.qcut(df.value_group, 2)
group percentage value_group count
0 0 0.5 1 1
1 1 0.3 2 10
2 1 0.7 3 20

sns.pointplot(x="value_group", y="percentage", hue="group", data=df)

我得到: enter image description here但相反我想要: enter image description here

如何在seaborn中实现这一点?

编辑

它们相似,但不相同。我的 value_group 是使用 pd.qcut 获得的,并且引用的代码无法处理这些。

python Seaborn - annotations with pointplot

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
ax = sns.pointplot(x="time", y="total_bill", hue="smoker", data=tips)

for c in ax.collections:
for of in c.get_offsets():
ax.annotate("Label", of)

plt.show()

看起来很有趣,但到目前为止我还不知道如何将正确的标签/索引与我的计数相匹配。

最佳答案

我认为这个问题有点不简单。由于您使用了 hue="group",因此图中有两个组,因此 ax.collections 的长度为 2。因此,要将注释包含在顺序正确,我使用了定位索引 j

您可以压缩要显示的偏移量和 DataFrame 值,并使用 for 循环将它们注释为

import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

df = pd.DataFrame({'group':[0,1,1],'percentage':[0.5, .3,.7],'value_group':[1,2,3], 'count':[1, 10, 20]})

ax = sns.pointplot(x="value_group", y="percentage", hue="group", data=df)

j = 0 # <--- Index to keep rack of values
values = df['count'].values # <--- store the values in a variable for easy access

for c in ax.collections:
for i, of in zip(range(len(c.get_offsets())), c.get_offsets()):
ax.annotate(values[j], of, color='red', fontsize=24)
j += 1
ax.legend(loc=(0.8, 0.1))
plt.show()

enter image description here

关于python - Seaborn 在点图中可视化点计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56521574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com