我尝试制作一个显示一些类别的堆叠条形图。但是,当前数据框似乎很难将类别堆叠在一起。此外,有些年份没有计数,应该将其删除。任何想法如何制作如下图所示的内容。非常感谢您的时间。
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df=pd.read_csv(r"https://raw.githubusercontent.com/tuyenhavan/Course_Data/main/test_barplot.csv")
fig,ax=plt.subplots(figsize=(15,8))
ax.bar(df.Year,df.Number)
plt.xticks(np.arange(2000,2022),np.arange(2000,2022))
plt.xlabel("Year", fontsize=15)
plt.ylabel("Number", fontsize=15)
plt.xticks()
plt.show()
您可以重塑数据,使堆叠的类别成为列。然后,您可以将 pandas plot.bar 与 一起使用stacked=True
。reindex
添加缺失的年份。
fig, ax=plt.subplots(figsize=(15,8))
df_stack = df.pivot_table(index="Year",
columns="Category",
values="Number",
aggfunc=sum)
df_stack = df_stack.reindex(np.arange(2000, 2022))
df_stack.plot.bar(stacked=True, ax=ax)
plt.xlabel("Year", fontsize=15)
plt.ylabel("Number", fontsize=15)
双农业是由于一个带有尾随空格,另一个不带有尾随空格。