Plotlyを使ってworld happiness ranking(世界幸福度ランキング)2015年〜2019年の推移をプロットします。Plotly_expressを使えば、5年間の幸福度推移を簡単にアニメーションできます。Plotlyのchoroplethマップを使用し、アニメーションの中で色の変化を見ることでランキングの推移を見て取れます。

世界幸福度ランキングを基に日本の幸福度が低い理由を考察する
世界3位の経済大国である豊かな国であるはずの日本の幸福度が、何故こんなにも低いのかということを、国連の関連団体が発表している世界幸福度ランキングから読み取ってみようと思います。
contents
スポンサーリンク
世界幸福度ランキングデータの準備¶
先ず、github.comから拾って来たデータをロードします。
import pandas as pd
df = pd.read_csv('2015.csv')
df1 = pd.read_csv('2016.csv')
df2 = pd.read_csv('2017.csv')
df3 = pd.read_csv('2018.csv')
df4 = pd.read_csv('2019.csv')
2018年の幸福度ランキングのトップ5をチラ見する。
df3.head()
次に、2019年の幸福度ランキングをチラ見します。
df4.head()

心理:人間の幸福度は周囲の幸福度に反比例、人は他人の不幸を願う
人間は自分が幸せを実感している時は、周りの人間にも幸せになってもらいたいと願う一方で、自分が不幸な境遇に置かれている時は、他人に対して自分以上のさらなる不幸を望む傾向があるようです。ネットの書き込みを見ていると、それを如実に物語っている書き込みが圧倒的に多いことに気付かされます。メシウマなんていう単語まで存在するほどで...
国名とランクの列名が違うので、2018年度版データに合わせます。
df4.rename(columns={'Country (region)': 'Country', 'Ladder': 'Rank'},inplace=True)
df.rename(columns={ 'Happiness Rank': 'Rank'},inplace=True)
df1.rename(columns={ 'Happiness Rank': 'Rank'},inplace=True)
df2.rename(columns={ 'Happiness.Rank': 'Rank'},inplace=True)
幸福度ランキングの発表された年をデーターフレームに追加します。
df['Year'] = 2015
df1['Year'] = 2016
df2['Year'] = 2017
df3['Year'] = 2018
df4['Year'] = 2019
必要な列(国、順位、年度)だけを抽出する。
df5 = df[['Country','Rank','Year']]
df6 = df1[['Country','Rank','Year']]
df7 = df2[['Country','Rank','Year']]
df8 = df3[['Country','Rank','Year']]
df9 = df4[['Country','Rank','Year']]
データフレームを1つにまとめます。
df10 = pd.concat([df5, df6, df7, df8, df9], ignore_index=True)
国と年でまとめたデータをソートします。
df11 = df10.sort_values(by=["Country",'Year'])
import plotly_express as px
import plotly.graph_objs as go
from plotly.offline import plot,iplot
fig = px.choropleth(df11,locations="Country",color="Rank",hover_name="Country",
animation_frame="Year",range_color=[0,200],color_continuous_scale=px.colors.cmocean.matter,
locationmode = 'country names',scope = "world")
fig.update_layout(title_text="世界幸福度ランキング2015年〜2019年",title_font=dict(size=22),
autosize=False,width=835,height=800,margin=dict(l=50,r=50,b=50,t=50,pad=0,autoexpand=True),
hoverlabel=dict(font=dict(size=24)),geo=dict(showcountries=True,showocean=True,showrivers=True,
landcolor='lightgray',resolution=110,showframe=False,showlakes=True,showland=True,
countrywidth=2,countrycolor='white',lakecolor='rgb(0,0,200)',
projection=dict(type='orthographic')))
plot(fig,show_link=False,filename="1.html",include_plotlyjs=False)
データが5年分しかないので、アニメーションさせてもそれ程変化の差を感じることができません。せめて10年分以上のデータが必要だろうと思われます。

世界一幸福なフィンランド人:sisuが意味するものとは?
sisuはフィンランドの言葉でガッツを意味するそうです。No guts, no glory (頑張れない人間は何をやってもダメ)と古から言い伝えられているように、ガッツの有る無しで人生が決まると言っても決して過言ではありません。少なくとも、最後の踏ん張りが出来るかできないかで、その後の人生が大きく変わってくることだけは...
スポンサーリンク
スポンサーリンク
コメント