标签:start sum xbox equal sea white 图片 chart item
前言
游戏主机之间的竞争由来已久,即使是现在也依然在悄然进行.本次数据分析将通过分析第七代游戏机和第八代游戏机之间的销量数据,来看一看谁才是这场竞争的胜者:
第七代游戏机: PS3,Xbox360,Wii
第八代游戏机: PS4,Xboxone,WiiU
首先,我们先导入需要用到的库
import numpy as np import pandas as pd import seaborn as sns from matplotlib import pyplot as plt %matplotlib inline from brewer2mpl import qualitative
接下来,我们先读取数据文件,观察一下数据
import os os.chdir(r‘C:\数据分析数据\video-game-sales-with-ratings‘) video = pd.read_csv(‘Video_Games_Sales_as_at_22_Dec_2016.csv‘) video.head()
看一下总共有多少数据
print(video.shape)
>>>(16719, 16)
可以看到总共有16个字段,16719行数据.
在开始深入研究数据之前,我们可以先进行一些一般的统计数据来了解我们这份数据,很多时候我们拿到的数据都不是能马上就可以用来分析的,需要先进行一下数据清洗工作
我们先检查一下数据中是否存在空值
video.isnull().any().any()
>>>True
看起来明显有空值,我们先去掉空值
video = video.dropna(axis=0)
接下来查看一下各个字段的数据类型
from tabulate import tabulate tabulate(video.info(), headers=‘keys‘, tablefmt=‘psql‘)
从返回的数据类型我们可以知道,User_Score字段里面可能含有字符串类型,而我们后面可能需要用其来进行计算,因此这里对其转化成数值
video[‘User_Score‘] = pd.to_numeric(video[‘User_Score‘])
因为我们是对三个主机平台进行对比,所以接下来我们看一下有哪些主机平台
video.Platform.unique()
>>>array([‘Wii‘, ‘DS‘, ‘X360‘, ‘PS3‘, ‘PS2‘, ‘3DS‘, ‘PS4‘, ‘PS‘, ‘XB‘, ‘PC‘, ‘PSP‘, ‘WiiU‘, ‘GC‘, ‘GBA‘, ‘XOne‘, ‘PSV‘, ‘DC‘], dtype=object)
从上面的数据可以看出,我们的数据集里面有很多不同的主机平台.但是对于我们这次数据分析的范围
和目的来说,我们只需要第七代和第八代主机平台的数据,因此我们需要对数据进行一些选择性的筛选
为了检查所有数值特性之间的相关性,并了解它们之间的相互关系,我将绘制一个热图。首先我所有的数字列提取到一个列表,并创建一个简单的dataframe“video_num”。因此,我首先绘制“Critic_Score”和“User_Score”列作为一个联合绘图(这有助于观察两个不同的变量是如何分布的),首先查看它们是如何交互的
str_list = [] # 用一个空列表存放字段名 for colname, colvalue in video.iteritems(): if type(colvalue[2]) == str: str_list.append(colname) num_list = video.columns.difference(str_list) video_num = video[num_list] f, ax = plt.subplots(figsize=(14, 11)) plt.title(‘Pearson Correlation of Video Game Numerical Features‘) sns.heatmap(video_num.astype(float).corr(),linewidths=0.25,vmax=1.0, square=True, cmap="cubehelix_r", linecolor=‘k‘, annot=True)
sns.jointplot(x=‘Critic_Score‘,y=‘User_Score‘,data=video, kind=‘hex‘, cmap= ‘afmhot‘, size=11)
分析: 不出所料,这2个分数之间表现出相当正的Pearson相关关系。这并不奇怪,因为通常情况下,如果一款游戏是优秀的,那么评论者和用户都会从中获得乐趣,并因此获得更高的分数,反之亦然。现在让我们看看“Critic_Count”和“Critic_Score”
sns.jointplot(‘Critic_Score‘,‘Critic_Count‘,data=video, kind=‘hex‘, cmap=‘afmhot‘, size=11)
分析: 在这个热图中,较深的颜色代表了更多的正相关,反之亦然。因此,我们已经可以看到“Global_Sales”与“EU_Sales”等之间存在着非常合理的联系。目前为止还有些有趣的事情。
现在我们进行第一个分析,对第七代主机平台进行统计分析和可视化
首先,我将创建一个dataframe(“video7th”)来只包含这些第7代主机平台,然后是进行一些数据戳和检查的时候了。
video7th = video[(video[‘Platform‘] == ‘Wii‘) | (video[‘Platform‘] == ‘PS3‘) | (video[‘Platform‘] == ‘X360‘)] video7th.shape
>>>(2106, 16)
筛选之后是两千多条数据
首先,让我们来看看这些游戏主机多年来的全球销售情况,看看我们能否找出其中值得分析的内容。为此,我将通过Year_of_Release和“Platform”上的“groupby”调用聚合数据,然后对Global_Sales求和。对于可视化,我将绘制堆叠的条形图,希望这将足够直观.
plt.style.use(‘dark_background‘) yearlySales = video7th.groupby([‘Year_of_Release‘,‘Platform‘]).Global_Sales.sum() yearlySales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘PuBu‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Global Yearly Sales of the 7th Gen Consoles‘) plt.ylabel(‘Global Sales‘)
分析: 似乎PS3的销售越来越好,XB360的销售(除了2009年的下降)也普遍增长,而Wii的销售,在2006年初和2007年有一个强劲的领先优势,但它的领先地位被其他两款游戏侵蚀了。
接下来,看一下不同评级的三款游戏机的销量(E:全年龄; M:成人; T:青少年)
plt.style.use(‘dark_background‘) ratingSales = video7th.groupby([‘Rating‘,‘Platform‘]).Global_Sales.sum() ratingSales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘Greens‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Sales per Rating type of the 7th Gen Consoles‘) plt.ylabel(‘Sales‘)
分析: 这并不奇怪,因为我们知道Wii主要是面向家庭娱乐的,因此它在适合所有人的E级销量最高,而成人游戏的M级销量几乎可以忽略不计。另一方面,PS3和XB360卖出了最多的m级游戏,这一点从他们过多的射击游戏、沙盒游戏和砍杀游戏中也可以看出来。
最后,我们进一步深入研究数据,看看这3款主机的销售情况,看看每款主机都有哪些类型的游戏,以及它们之间的区别.
plt.style.use(‘dark_background‘) genreSales = video7th.groupby([‘Genre‘,‘Platform‘]).Global_Sales.sum() genreSales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘Reds‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Sales per Game Genre‘) plt.ylabel(‘Sales‘)
分析: 似乎对于PS3和XB360来说,他们的两种主要类型都是动作游戏和射击游戏,正如我们所知道的,因为它们更吸引硬核的,以动作为导向的玩家。另一方面,Wii专注于运动类型,平台游戏以及其他一些杂项游戏。
最后,让我们看看全球总销售额和3个主机的用户总数的饼图可视化。我要介绍的方法是简单地将所有游戏的全球销售额和用户价值加起来。因此,需要注意的是,要对数字和可视化结果有所保留,因为这个输出将取决于原始数据集在第一个实例中是否完全包含。
# Plotting our pie charts # Create a list of colors plt.style.use(‘seaborn-white‘) colors = [‘#008DB8‘,‘#00AAAA‘,‘#00C69C‘] plt.figure(figsize=(15,11)) plt.subplot(121) plt.pie( video7th.groupby(‘Platform‘).Global_Sales.sum(), # with the labels being platform labels=video7th.groupby(‘Platform‘).Global_Sales.sum().index, # with no shadows shadow=False, # stating our colors colors=colors, explode=(0.05, 0.05, 0.05), # with the start angle at 90% startangle=90, # with the percent listed as a fraction autopct=‘%1.1f%%‘ ) plt.axis(‘equal‘) plt.title(‘Pie Chart of Global Sales‘) plt.subplot(122) plt.pie( video7th.groupby(‘Platform‘).User_Count.sum(), labels=video7th.groupby(‘Platform‘).User_Count.sum().index, shadow=False, colors=colors, explode=(0.05, 0.05, 0.05), startangle=90, autopct=‘%1.1f%%‘ ) plt.axis(‘equal‘) plt.title(‘Pie Chart of User Base‘) plt.tight_layout() plt.show()
分析: 从上面的饼状图和早期的barplot图来看,PS3和XB360似乎势均力敌,而XB360在全球销售方面略胜一筹。显而易见的是,仅从这些指标来看,Wii的表现无法与其他两款竞争对手相抗衡。
综上所述,可以说,在第七代游戏主机的竞争中,xbox360占据了上风
接下来,我们分析第八代游戏主机的竞争情况,分析步骤跟前面分析第七代游戏机差不多
首先我们筛选数据
video8th = video[(video[‘Platform‘] == ‘WiiU‘) | (video[‘Platform‘] == ‘PS4‘) | (video[‘Platform‘] == ‘XOne‘)] video8th.shape
>>>(487, 16)
可以看到有487条数据
接下来看一下第八代游戏主机的销售业绩
plt.style.use(‘dark_background‘) yearlySales = video8th.groupby([‘Year_of_Release‘,‘Platform‘]).Global_Sales.sum() yearlySales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘PuBu‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Global Yearly Sales of the 8th Gen Consoles‘) plt.ylabel(‘Global Sales‘)
分析: 很明显,PS4的全球销量超过了WiiU和XOne的总和。这是一个非常明显的偏离其前身的表现,在第7代时,当PS3和XB360在销售业绩多年来齐头并进。
问题: 为什么会出现这种现象,第八代主机开始ps4逐渐占据了主导地位?
接下来我们探索一下数据,看能不能研究ps4的优势.我们看看这些主机迎合了那些类型的观众.
plt.style.use(‘dark_background‘) ratingSales = video8th.groupby([‘Rating‘,‘Platform‘]).Global_Sales.sum() ratingSales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘Greens‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Sales per Rating type of the 8th Gen Consoles‘) plt.ylabel(‘Sales‘)
分析: 这一次的结果很有趣。不同于第七代分析那里有一个明确的界定,PS3和XB360游戏主要是为成熟的观众,而Wii主要针对每个玩家.似乎PS4决定满足(或以某种方式吸引更多)M和E的观众。这可以解释为什么他们之前在全球销售中占据主导地位,因为他们现在既吸引了铁杆游戏玩家,也吸引了休闲、家庭友好型玩家。
接下来,我们看一下游戏类型上的比较
plt.style.use(‘dark_background‘) genreSales = video8th.groupby([‘Genre‘,‘Platform‘]).Global_Sales.sum() genreSales.unstack().plot(kind=‘bar‘,stacked=True, colormap= ‘Reds‘, grid=False, figsize=(13,11)) plt.title(‘Stacked Barplot of Sales per Game Genre‘) plt.ylabel(‘Sales‘)
分析: 从这个图可以看出,ps4显然想要比他的前辈ps3更深入探索游戏类型.只要快速浏览,就会发现ps4已经占据了12中类型的游戏中的7款,而ps3只占了4款
最后,我们再看一下,第八代主机全球总销售额和3个主机的用户总数的饼图可视化
# Plotting our pie charts # Create a list of colors plt.style.use(‘seaborn-white‘) colors = [‘#008DB8‘,‘#00AAAA‘,‘#00C69C‘] plt.figure(figsize=(15,11)) plt.subplot(121) plt.pie( video8th.groupby(‘Platform‘).Global_Sales.sum(), # with the labels being platform labels=video8th.groupby(‘Platform‘).Global_Sales.sum().index, # with no shadows shadow=False, # stating our colors colors=colors, explode=(0.05, 0.05, 0.05), # with the start angle at 90% startangle=90, # with the percent listed as a fraction autopct=‘%1.1f%%‘ ) plt.axis(‘equal‘) plt.title(‘Pie Chart of 8th Gen Global Sales‘) plt.subplot(122) plt.pie( video8th.groupby(‘Platform‘).User_Count.sum(), labels=video8th.groupby(‘Platform‘).User_Count.sum().index, shadow=False, colors=colors, explode=(0.05, 0.05, 0.05), startangle=90, autopct=‘%1.1f%%‘ ) plt.axis(‘equal‘) plt.title(‘Pie Chart of 8th Gen User Base‘) plt.tight_layout() plt.show()
分析: 从上面的饼状图和早期的barplot图来看,不像第七代主机,第八代主机出现了一个明显的领导者,ps4远远超过其他两个竞争对手.虽然竞争还在继续,不过很显然,ps4比其他两个主机走得更快,拥有一个非常大的领先优势.
综上所述,可以说,在第八代游戏主机的竞争中,ps4完胜.
标签:start sum xbox equal sea white 图片 chart item
原文地址:https://www.cnblogs.com/lattesea/p/12596302.html