我有显示来自不同国家/地区的温度和日期的数据。
Date Temperature Units Year Month Statistics Country CODE
Jan 1991 -26.2 Celsius 1991 Jan Average Canada CAN
Feb 1991 -21.0 Celsius 1991 Feb Average Canada CAN
Mar 1991 -18.2 Celsius 1991 Mar Average Canada CAN
Apr 1991 -8.6 Celsius 1991 Apr Average Canada CAN
May 1991 0.8 Celsius 1991 May Average Canada CAN
我只想为 1991 年的每个月制作一个条形图。我想创建一个循环,所以最后,我得到 12 个图,每个图都有五个不同的条形图(国家/地区),显示 1991 年每个国家/地区的温度.
我是这样做的:
tempcountries.groupby(['Country','Month']).plot.bar(y='Temperature',legend=True)
plt.title("Monthly AVerage Temperature")
plt.xlabel('Time')
plt.ylabel('Average Temperature °C')
plt.show()
但我每个国家和每个月都会得到一个地块,而不是每个国家每个月都会得到一个地块。 你能帮我吗?
答案 0 :(得分:0)
tempcountries.groupby(['Month']).plot.bar(x='Country', y='Temperature',legend=True)
如果你想将这些放在一个图中,seaborn 包提供了一个很好的界面,用于根据 Pandas DataFrame 中的分类变量创建图形网格。
import seaborn as sns
g = sns.FacetGrid(tempcountries, col="Month")
g.map_dataframe(sns.barplot, y="Temperature", x="Country")
答案 1 :(得分:0)
Seaborn 软件包可以为您轻松做到这一点。
import seaborn as sns
# Plot all countries for each month
sns.catplot(x = 'Country', y = 'Temperature', col = 'Month', kind = 'bar',
data = tempcountries[tempcountries['Year'] == 1991]
)