失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据可视化分析-世界幸福指数

数据可视化分析-世界幸福指数

时间:2019-08-01 22:12:47

相关推荐

数据可视化分析-世界幸福指数

1.查看-每年幸福指数Happiness Rank排名前5和后5的国家

所用的数据集、、.csv文件可以去百度,3个文件存放在4个代码所在目录code的同级目录data下

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=False#1.查看-每年幸福指数Happiness Rank排名前5和后5的国家def Happiness_Rank_5(year):if (==year):#指标命名不同于其他2年columns=['Country','Happiness.Rank','Happiness.Score']load_data=pd.read_csv("../data/{}.csv".format(year))[columns]y1=load_data['Happiness.Score'][:5]y2=load_data['Happiness.Score'][-5:]else:#和columns=['Country','Happiness Rank','Happiness Score']load_data=pd.read_csv("../data/{}.csv".format(year))[columns]y1=load_data['Happiness Score'][:5]y2=load_data['Happiness Score'][-5:]data1_5=load_data[:5]data5_1=load_data[-5:]#可视化:幸福指数排名前5国家数据plt.figure(figsize=(15,6))ax=plt.subplot(1,2,1)plt.xlabel('Country',fontsize=20)plt.ylabel('Happiness Score',fontsize=20)plt.xticks(range(5),data1_5.Country,fontsize=15)plt.yticks(fontsize=15)plt.ylim((6,7.6))plt.bar(range(5),y1,width=0.5)plt.title('{}年幸福指数排名前5国家'.format(year),color='red',fontsize=20)plt.show()print("{}年幸福指数排名前5国家数据:\n".format(year),data1_5)#可视化:幸福指数排名后5国家数据p=plt.figure(figsize=(15,6))ax=plt.subplot(1,2,2)plt.xlabel('Country',fontsize=20)plt.ylabel('Happiness Score',fontsize=20)plt.xticks(range(5),data5_1.Country,fontsize=15)plt.yticks(fontsize=15)plt.ylim((2,3.6))plt.bar(range(5),y2,width=0.5,color='red')plt.title('{}年幸福指数排名后5国家'.format(year),color='green',fontsize=20)plt.show()print("{}年幸福指数排名后5国家数据:\n".format(year),data5_1)#前5和后5国家Happiness_Rank_5()#前5和后5国家Happiness_Rank_5()#前5和后5国家Happiness_Rank_5()

2.统计-某区域区域幸福指标数据(可以传各个列名参数进行统计,不只限于幸福指数)

#2.统计-某区域区域幸福指标数据(可以传各个列名参数进行统计,不只限于幸福指数)def region_Happiness(year,name,area):if (==year):#没有分区域,用国家先与数据关联,这样就有了区域columns=['Country','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']data=pd.read_csv('../data/{}.csv'.format(year))[columns]columns2=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']data2=pd.read_csv('../data/.csv')[columns2]#将与合并,data2为,相同列名会变成column_x和column_ydata=pd.merge(data2,data,how='left',on='Country')#更改的column_y为columndata=data.rename(columns={'Family_y':'Family','Freedom_y':'Freedom','Generosity_y':'Generosity'})else:columns=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']data=pd.read_csv('../data/{}.csv'.format(year))[columns]#可视化:某区域幸福指标数据 plt.figure(figsize=(45,15))data=data[data['Region']==area]plt.xlabel('Country',fontsize=50)plt.ylabel(name,fontsize=50)plt.xticks(range(data.shape[0]),data.Country,fontsize=40,rotation='vertical')#让横轴的国家名竖着显示plt.yticks(fontsize=40)#这个y轴取值范围只针对Happiness Score,对于其他列不合适plt.ylim((4.5,7.75))plt.bar(range(data.shape[0]),data[name],width=0.5)plt.title('{}年{}的{}指标统计图'.format(year,area,name),color='red',fontsize=50)plt.show()#文字只输出国家、区域、指标数据columns3=['Country','Region',name]data=data[columns3]print("{}年{}的{}指标数据为:\n".format(year,area,name),data) #统计某区域幸福指标数据 year=area='Western Europe'region_Happiness(year,'Happiness Score',area)#region_Happiness(year,'Economy (GDP per Capita)',area)#region_Happiness(year,'Family',area)#region_Happiness(year,'Health (Life Expectancy)',area)#region_Happiness(year,'Freedom',area)#region_Happiness(year,'Trust (Government Corruption)',area)#region_Happiness(year,'Generosity',area)#统计某区域幸福指标数据year=area='Western Europe'region_Happiness(year,'Happiness Score',area)#region_Happiness(year,'Economy (GDP per Capita)',area)#region_Happiness(year,'Family',area)#region_Happiness(year,'Health (Life Expectancy)',area)#region_Happiness(year,'Freedom',area)#region_Happiness(year,'Trust (Government Corruption)',area)#region_Happiness(year,'Generosity',area)#统计某区域幸福指标数据year=area='Western Europe'region_Happiness(year,'Happiness.Score',area)#region_Happiness(year,'Economy..GDP.per.Capita.',area)#region_Happiness(year,'Family',area)#region_Happiness(year,'Health..Life.Expectancy.',area)#region_Happiness(year,'Freedom',area)#region_Happiness(year,'Trust..Government.Corruption.',area)#region_Happiness(year,'Generosity',area)

3.-幸福指数上升最快和下降最快的国家

#3.-幸福指数上升最快和下降最快的国家columns=['Country','Region','Happiness Rank','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']data_=pd.read_csv('../data/.csv')[columns]data_=pd.read_csv('../data/.csv')[columns]#将与合并,相同列名会变成column_x和column_ydata=pd.merge(data_,data_,how='left',on='Country')#将2年的排名差放在Happiness Rank_xdata['Happiness Rank_x']=data['Happiness Rank_y']-data['Happiness Rank_x']#找到差最大和最小的行data1=data[data['Happiness Rank_x']==max(data['Happiness Rank_x'])]data2=data[data['Happiness Rank_x']==min(data['Happiness Rank_x'])] #输出国家、排名差print("-上升最快的是:\n{}\n上升了{}名".format(data1['Country'],max(data['Happiness Rank_x'])))print("-下降最快的是:\n{}\n下降了{}名".format(data2['Country'],min(data['Happiness Rank_x'])))#可视化:-所有国家排名差数据name='Happiness Rank_x'plt.figure(figsize=(40,15))plt.xlabel('Country',fontsize=50)plt.ylabel(name,fontsize=50)plt.xticks(range(data.shape[0]),data.Country,fontsize=20,rotation='vertical')plt.yticks(fontsize=40)plt.bar(range(data.shape[0]),data[name],width=0.5,color='red')plt.title('-幸福指数排名差图(以索引为准)',color='green',fontsize=50)plt.show()#可视化:-所有区域排名差columns3=['Country','Region_x','Happiness Rank_x']data2= data[columns3]areas=set(data2['Region_x'])for area in areas:plt.figure(figsize=(20,8))data3=data2[data2['Region_x'] == area]plt.bar(data3['Country'],data3['Happiness Rank_x'])plt.xticks(fontsize=15,rotation='vertical')plt.yticks(fontsize=15)plt.ylabel("Happiness Rank_x",fontsize=20)plt.xlabel("Country",fontsize=20)plt.title('-{}的国家幸福指数排名差图'.format(area),color='red',fontsize=20)plt.show()#-幸福指数上升最快和下降最快的国家columns2=['Country','Happiness.Rank','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']data_=pd.read_csv('../data/.csv')[columns2]#将与合并,相同列名会变成column_x和column_ydata=pd.merge(data_,data_,how='left',on='Country')#将2年的排名差放在Happiness Rankdata['Happiness Rank']=data['Happiness.Rank']-data['Happiness Rank']#找到差最大和最小的行data1=data[data['Happiness Rank']==max(data['Happiness Rank'])]data2=data[data['Happiness Rank']==min(data['Happiness Rank'])] #输出国家、排名差print("\n-上升最快的是:\n{}\n上升了{}名".format(data1['Country'],max(data['Happiness Rank'])))print("-下降最快的是:\n{}\n下降了{}名".format(data2['Country'],min(data['Happiness Rank'])))#可视化:-所有国家排名差数据name='Happiness Rank'plt.figure(figsize=(40,15))plt.xlabel('Country',fontsize=50)plt.ylabel(name,fontsize=50)plt.xticks(range(data.shape[0]),data.Country,fontsize=20,rotation='vertical')plt.yticks(fontsize=40)plt.bar(range(data.shape[0]),data[name],width=0.5,color='red')plt.title('-幸福指数排名差图(以索引为准)',color='green',fontsize=50)plt.show()#可视化:-所有区域排名差columns3=['Country','Region','Happiness Rank']data2= data[columns3]areas=set(data2['Region'])for area in areas:plt.figure(figsize=(20,8))data3=data2[data2['Region'] == area]plt.bar(data3['Country'],data3['Happiness Rank'])plt.xticks(fontsize=15,rotation='vertical')plt.yticks(fontsize=15)plt.ylabel("Happiness Rank",fontsize=20)plt.xlabel("Country",fontsize=20)plt.title('-{}的国家幸福指数排名差图'.format(area),color='red',fontsize=20)plt.show()

最后的图太多了,就不复制了

4.中国3年的幸福指数变化

#4.中国3年的幸福指数变化def China_Happiness():columns=['Country','Region','Happiness Score','Economy (GDP per Capita)','Family',\'Health (Life Expectancy)','Freedom','Trust (Government Corruption)','Generosity']columns2=['Country','Happiness.Score','Economy..GDP.per.Capita.','Family',\'Health..Life.Expectancy.','Freedom','Trust..Government.Corruption.','Generosity']data_=pd.read_csv("../data/.csv")[columns]data_=pd.read_csv("../data/.csv")[columns]data_=pd.read_csv("../data/.csv")[columns2]data_=data_[data_['Country']=='China']data_=data_[data_['Country']=='China']data_=data_[data_['Country']=='China']#将Happiness.Score改为Happiness Score,方便之后的数据堆叠data_=data_.rename(columns={'Happiness.Score':'Happiness Score'})columns=[ 'Country','Happiness Score' ]data_=data_[columns]data_=data_[columns]data_=data_[columns]#将3年China的数据堆叠data=pd.concat([data_,data_,data_])print("-China的幸福指数:\n",data)plt.figure(figsize=(10,7))plt.xlabel('Happiness Score',fontsize=20)plt.ylabel('China',fontsize=20)plt.ylim((4.5,5.5))plt.xticks(range(data.shape[0]),['','',''],fontsize=15)plt.yticks(fontsize=15)plt.bar(range(data.shape[0]),data['Happiness Score'],width=0.3,color='red')plt.title('-China幸福指数变化图',fontsize=20,color='green')plt.show()China_Happiness()

如果觉得《数据可视化分析-世界幸福指数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。