[英]Annotate seaborn Factorplot
我想在一個seaborn FactorPlot中可視化存儲為列的2個布爾信息。
這是我的df:
我想既形象化的actual_group
和adviced_group
在同一FactorPlot。
現在我只能使用hue
參數繪制adviced_groups
:
使用以下代碼:
_ = sns.factorplot(x='groups',
y='nb_opportunities',
hue='adviced_groups',
size=6,
kind='bar',
data=df)
我嘗試使用matplotlib中的ax.annotate()
而沒有任何成功,因為 - 據我sns.FactorPlot()
- Axes不是由sns.FactorPlot()
方法處理的。
它可以是一個注釋,為矩形的一個邊緣着色或任何可以幫助可視化實際組的東西。
結果可能是這樣的事情:
你可以使用plt.annotate
提供方法matplotlib
做出了注解factorplot
如圖所示:
建立:
df = pd.DataFrame({'groups':['A', 'B', 'C', 'D'],
'nb_opportunities':[674, 140, 114, 99],
'actual_group':[False, False, True, False],
'adviced_group':[False, True, True, True]})
print (df)
actual_group adviced_group groups nb_opportunities
0 False False A 674
1 False True B 140
2 True True C 114
3 False True D 99
數據操作:
選擇df
的子集,其中actual_group
的值為True。 index
值和nb_opportunities
值成為x和y的參數,它們成為注釋的位置。
actual_group = df.loc[df['actual_group']==True]
x = actual_group.index.tolist()[0]
y = actual_group['nb_opportunities'].values[0]
繪圖:
sns.factorplot(x="groups", y="nb_opportunities", hue="adviced_group", kind='bar', data=df,
size=4, aspect=2)
將一些填充添加到注釋的位置以及文本的位置以考慮要繪制的條的寬度。
plt.annotate('actual group', xy=(x+0.2,y), xytext=(x+0.3, 300),
arrowprops=dict(facecolor='black', shrink=0.05, headwidth=20, width=7))
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.