为了账号安全,请及时绑定邮箱和手机立即绑定

使用颜色个性化 pandas 箱线图

使用颜色个性化 pandas 箱线图

呼如林 2024-01-16 10:45:27
我一直在尝试制作一些性别数据的箱线图,将其分为两个独立的数据框,一个用于男性,一个用于女性。我设法使图表基本上按照我想要的方式制作,但现在我想让它看起来更好。我想让它看起来像一个seaborn图表,但我无法找到一种使用seaborn库来实现这一点的方法。我尝试了一些为 pandas boxpplot 着色的想法,但没有任何效果。有没有办法给这些图表着色?或者有没有办法用seaborn制作这些并排的箱线图?dados_generos = dados_sem_zeros[["NU_NOTA_CN","NU_NOTA_CH","NU_NOTA_MT","NU_NOTA_LC","NU_NOTA_REDACAO", "TP_SEXO"]]sexo_f = dados_generos[dados_generos["TP_SEXO"].str.contains("F")]sexo_m = dados_generos[dados_generos["TP_SEXO"].str.contains("M")]labels = ["CN", "CH", "MT", "LC", "REDAÇÃO"]    fig, (ax, ax2) = plt.subplots(figsize = (10,7), ncols=2, sharey=True)#Setting axis titlesax.set_xlabel('Provas')ax2.set_xlabel('Provas')ax.set_ylabel('Notas')#Making plotschart1 = sexo_f[provas].boxplot(ax=ax)chart2 = sexo_m[provas].boxplot(ax=ax2)#Setting axis labelschart1.set_xticklabels(labels,rotation=45)chart2.set_xticklabels(labels,rotation=45)plt.show()这是我得到的结果:这是我正在使用的数据的链接: https://github.com/KarolDuarte/dados_generos/blob/main/dados_generos.csv
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

由于sns最适合长格式数据,让我们尝试融合数据并使用sns.


# melting the data

plot_data = df.melt('TP_SEXO')


fig, axes = plt.subplots(figsize = (10,7), ncols=2, sharey=True)


for ax, (gender, data) in zip(axes, plot_data.groupby('TP_SEXO')) :

    sns.boxplot(x='variable',y='value',data=data, ax=ax)

输出:

https://img1.sycdn.imooc.com/65a5ee020001155e06420424.jpg

查看完整回答
反对 回复 2024-01-16
  • 1 回答
  • 0 关注
  • 30 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信