使用 matplotlib 进行一些自定义的堆叠条形图
Stacked barplot with some customizations using matplotlib
我尝试生成显示某些类别的堆叠条形图。但是,当前的数据框似乎很难将类别堆叠在一起。此外,有些年份没有计数,应将其删除。任何想法如何制作如下图所示的东西。非常感谢您的宝贵时间。
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)
双农因一有一无尾随space.
我尝试生成显示某些类别的堆叠条形图。但是,当前的数据框似乎很难将类别堆叠在一起。此外,有些年份没有计数,应将其删除。任何想法如何制作如下图所示的东西。非常感谢您的宝贵时间。
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)
双农因一有一无尾随space.