我对熊猫和猫很陌生
我应用了一份调查问卷,在一个特定的问题中,人们被问及他们使用的社交网络。可供选择的有Facebook、Instagram、Twitter等。他们可以选择多个选项
我想组织这些数据来绘制条形图。我使用了以下代码:
listsocial = df["SocialNetworks"].str.split(', ', expand=True)
listsocial.head()
listsocial = 100*listsocial.stack().value_counts(normalize=True)
然后:
sns.set(font_scale=1.4)
ax = listsocial.plot(kind='bar', figsize=(15,7), color=('#009C3B'), grid=True)
ax.yaxis.set_major_formatter(mtick.PercentFormatter(decimals=False))
plt.xticks(rotation=80)
plt.suptitle('Most used social networks', fontsize=20)
plt.xlabel('Social network', fontsize=14, labelpad=20)
plt.ylabel('Respondents\n(%)', fontsize=14, labelpad=20)
plt.show()
然而,结果并没有考虑到人们可以回答多于一个选项的事实,因此总数不应该是100%。我想让图表显示这样的数据:70%使用Facebook,60%使用Instagram,等等
提前谢谢
您可以除以行数,而不是调用
value_counts(normalize=True)
:在这种情况下,拆分和堆叠不是办法
我会为每个感兴趣的社交网络创建单独的列,并分配
True
,如果它包含在字符串中(类似于一个热编码器)然后你就可以用
相关问题 更多 >
编程相关推荐