如何解决如何在Seaborn图中将y轴转换为%值?
我想转换下面的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))
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)
编辑**********
解决方法
将数字(整数或浮点数)解析为字符串时,可以按如下方式使用'%'格式参数:
f'{0.21:%}' => '21.000000%'
您的方法即将解决,只有一个小错误。 您需要将'%'放入格式字符串的花括号中,而不是将其附加到数字之后:
ylabel = [f'{i:.0%}' for i in df_graph2['Contactable_Percent']]
然后将此列表设置为ylabel:
ax.set_yticklabels(ylabel)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。