如何在Seaborn图中将y轴转换为%值?

时间:2020-09-01 17:26:58

标签: python pandas matplotlib data-visualization seaborn

我想转换下面的seaborn图以百分比显示y轴。像15%20%...我尝试了#ylabel = ['{:. 2}'。format(x)+'%'对于[2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6]中的x,它不起作用。我该改变什么?

enter image description here

df_graph2['day']=df['day'].unique().tolist()
df_graph2['Contactable_Percent']=[0]*len(df['day'].unique().tolist())

for pos,value in enumerate(df['day'].unique().tolist()):
    print(pos)
    df_graph2['Contactable_Percent'].iloc[pos]=(df.query('day==@value').query('Completed==1').shape[0])/(df.query('day==@value')['Completed'].shape[0])  

df_graph2=df_graph2.reindex([5,4,3,2,1,0])

sns.set_style("white",{'xtick.color': '.1','xtick.minor.size':16})
plt.figure(figsize=(10, 8))


ax=sns.barplot(x="day", y="Contactable_Percent", data=df_graph2, ci=None,color='b',saturation=1,edgecolor=(0,0,0))
ax.set(ylim=(0.14,.38))
sns.set(font_scale = 2)

ax.set_ylabel('')    
ax.set_xlabel('')
ax.set_xticklabels(ax.get_xticklabels(), rotation=90)


plt.title("Week 35: 24-30 Aug", size=26)

编辑**********

EDIT 2

1 个答案:

答案 0 :(得分:0)

将数字(整数或浮点数)解析为字符串时,可以按如下方式使用'%'格式参数:

f'{0.21:%}' => '21.000000%'

您的方法即将解决,只有一个小错误。 您需要将'%'放入格式字符串的花括号中,而不是将其附加到数字之后:

ylabel = [f'{i:.0%}' for i in df_graph2['Contactable_Percent']]

然后将此列表设置为ylabel:

ax.set_yticklabels(ylabel)