我想转换下面的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,它不起作用。我该改变什么?
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)
编辑**********
答案 0 :(得分:0)
将数字(整数或浮点数)解析为字符串时,可以按如下方式使用'%'格式参数:
f'{0.21:%}' => '21.000000%'
您的方法即将解决,只有一个小错误。 您需要将'%'放入格式字符串的花括号中,而不是将其附加到数字之后:
ylabel = [f'{i:.0%}' for i in df_graph2['Contactable_Percent']]
然后将此列表设置为ylabel:
ax.set_yticklabels(ylabel)