猿问

堆积条形图,按游戏类型堆积

我有一个视频游戏销售数据,我能够按年份绘制视频游戏销售图表,但是我想做一个堆积图表,这意味着人们会知道在某一年动作游戏销售多少射击游戏销售策略游戏销售等您的帮助将不胜感激

按年份划分的销售额

样本数据:

,Year,Genre,Global_Sales

0,2006.0,Sports,82.74

1,1985.0,Platform,40.24

2,2008.0,Racing,35.82

3,2009.0,Sports,33.0

4,1996.0,Role-Playing,31.37

5,1989.0,Puzzle,30.26

6,2006.0,Platform,30.01

7,2006.0,Misc,29.02

8,2009.0,Platform,28.62

9,1984.0,Shooter,28.31

10,2005.0,Simulation,24.76

11,2005.0,Racing,23.42

12,1999.0,Role-Playing,23.1

13,2007.0,Sports,22.72

14,2009.0,Sports,22.0

15,2010.0,Misc,21.82

16,2013.0,Action,21.4

17,2004.0,Action,20.81

18,1990.0,Platform,20.61

19,2005.0,Misc,20.22



import matplotlib.pyplot as plt

import pandas as pd

import numpy as np


df = 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()


ABOUTYOU
浏览 121回答 1
1回答

GCT1015

使用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')
随时随地看视频慕课网APP

相关分类

Python
我要回答