在 seaborn barplot 中按十年分组
Group years by decade in seaborn barplot
如果我有一个包含一列 'Year' 和另一列 'Average temperature' 的 DataFrame,我想在 barplot 中表示它们以查看全局平均气温在过去几十年里有所上升,如何将年换算成几十年?
例如,在 1980 和 1989 之间,我需要将其在 x 轴上表示为 1980。对于 1990 和 1999,则表示为 1990,依此类推。
注意:
x轴=年
y轴=平均温度
非常感谢
你可以通过
- 将年份转换为十年的起始年份
- 然后计算该十年中年份的平均温度
代码:
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()
如果我有一个包含一列 'Year' 和另一列 'Average temperature' 的 DataFrame,我想在 barplot 中表示它们以查看全局平均气温在过去几十年里有所上升,如何将年换算成几十年?
例如,在 1980 和 1989 之间,我需要将其在 x 轴上表示为 1980。对于 1990 和 1999,则表示为 1990,依此类推。
注意:
x轴=年
y轴=平均温度
非常感谢
你可以通过
- 将年份转换为十年的起始年份
- 然后计算该十年中年份的平均温度
代码:
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()