我需要一个同时包含三个变量的条形图

问题描述 投票:0回答:1

我需要一个在 y 轴上包含三个列的条形图:rating_standard、rating_rapid、rating_blitz。 我附上了一张与我的要求相似的图表。

df_7 = df3[(df3['fide_id'] == 14109336)]

df_7

fide_id|年份|月份|评级标准|评级_快速|评级_闪电战|

146116| 2015| 1 | 2530.0| 2599.0| 2540.0

146116| 2015| 2 | 2530.0| 2530.0| 2530.0

………………………………

146116| 2021| 3 | 2546.0| 2546.0| 2546.0

146116| 2021| 4 | 2546.0| 2521.0| 2608.0

谢谢, 莉莉娅·马尔祖吉

python graph cvs
1个回答
0
投票

假设你的 df_7 是一个 pandas DataFrame,有两种方法可以做到这一点:

最简单的方法

df_7.plot(kind='bar',x='month',y=['rating_standard','rating_rapid','rating_blitz'])

另一种使用seaborn的方法,你可以先像这样改变数据存储的方式:

df = df.melt(id_vars=['month'], 
        value_vars=['rating_standard','rating_rapid','rating_blitz'], 
        var_name='rating',
        value_name='value', 
        )

它将使表格成为:

    month   rating      value
0   1   rating_standard 2530.0
1   2   rating_standard 2530.0
2   3   rating_standard 2546.0
3   4   rating_standard 2546.0
4   1   rating_rapid    2599.0

那些评级列现在是一个变量,即原始表中的每一行现在对应于新表中的 3 行。然后你可以使用 seaborn 如下:

import seaborn as sns
sns.barplot(data=df, x='month', y='value', hue='rating')

如果你想和你分享的图片完全一样,请告诉我,比如月份名称、颜色等。然后我们可以做一些改变。

© www.soinside.com 2019 - 2024. All rights reserved.