我有一个视频游戏销售数据,我能够按年份绘制视频游戏销售图表,但是我想做一个堆积图表,这意味着人们会知道在某一年动作游戏销售多少射击游戏销售策略游戏销售等您的帮助将不胜感激按年份划分的销售额样本数据:,Year,Genre,Global_Sales0,2006.0,Sports,82.741,1985.0,Platform,40.242,2008.0,Racing,35.823,2009.0,Sports,33.04,1996.0,Role-Playing,31.375,1989.0,Puzzle,30.266,2006.0,Platform,30.017,2006.0,Misc,29.028,2009.0,Platform,28.629,1984.0,Shooter,28.3110,2005.0,Simulation,24.7611,2005.0,Racing,23.4212,1999.0,Role-Playing,23.113,2007.0,Sports,22.7214,2009.0,Sports,22.015,2010.0,Misc,21.8216,2013.0,Action,21.417,2004.0,Action,20.8118,1990.0,Platform,20.6119,2005.0,Misc,20.22import matplotlib.pyplot as pltimport pandas as pdimport numpy as npdf = pd.read_csv('vgsales.csv')df.dropna(subset = ['Year'], inplace=True)df['Year']=df['Year'].astype(int)df['Year']= df['Year'].astype(str)df.set_index(['Year'],inplace=True)df = df.groupby(['Year']).agg({'Global_Sales':np.sum}) #gives sales for each year# df= df.groupby(['Year','Genre']).agg({'Global_Sales':np.sum}) # gives sales by each genre # gf = df.groupby('Genre')# df.reset_index(inplace=True)# df.sort_values(df.index, inplace=True)# plt.bar(df.index.get_level_values(0), df['Global_Sales'])lab = df.index.get_level_values(0)y = df['Global_Sales']x = np.arange(len(lab))plt.figure(figsize=(10,10))plt.bar(x,y)plt.title('Video Game Sales in Past Years', fontsize=20)plt.xlabel('Years')plt.ylabel('Sales (Millions)')plt.xticks(x, lab, rotation = 'vertical')plt.show()
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
使用Kaggle 的数据:视频游戏销售
尝试:
df = pd.read_csv('data/kaggle/video_game_sales/vgsales.csv')
dfg = df.groupby(['Year','Genre']).agg({'Global_Sales':np.sum})
ax = dfg['Global_Sales'].unstack().plot.bar(stacked=True, figsize=(10,10))
plt.legend(title='Game Genre', bbox_to_anchor=(1.05, 1), loc='upper left')
ax.set_title('Global Sales')
ax.set_ylabel('Sales (Millions)')
ax.set_xlabel('Years')

添加回答
举报
0/150
提交
取消
