在 seaborn barplot 中按十年分组

Group years by decade in seaborn barplot

如果我有一个包含一列 'Year' 和另一列 'Average temperature' 的 DataFrame,我想在 barplot 中表示它们以查看全局平均气温在过去几十年里有所上升,如何将年换算成几十年?

例如,在 1980 和 1989 之间,我需要将其在 x 轴上表示为 1980。对于 1990 和 1999,则表示为 1990,依此类推。

注意:

x轴=年

y轴=平均温度

非常感谢

你可以通过

  1. 将年份转换为十年的起始年份
  2. 然后计算该十年中年份的平均温度

代码:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#Sample data. Replace it with your data.
df = pd.DataFrame([[2011,20],[2012,10],[2013,10],[2014,10],[2015,10],[2016,10],[2017,10],[2018,10],[2019,10],[2020,10],[2021,10],[2022,15]], columns=['year','temp'])
df['year'] = df['year'] - df['year'] % 10
df_decade = (df.groupby(['year']).mean().reset_index())
ax = sns.barplot(x="year", y="temp", data=df_decade)
plt.show()