我需要一个在 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
谢谢, 莉莉娅·马尔祖吉
假设你的 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')
如果你想和你分享的图片完全一样,请告诉我,比如月份名称、颜色等。然后我们可以做一些改变。