【Python】Plotlyを使って世界時価総額TOP20の円グラフを作成

Python備忘録。内容は初心者向けです。

今回の内容

  • Pandasでcsvファイルを読み込み
  • plotlyで「時価総額TOP20」の円グラフを作成

データは、過去の記事「【2020年版】世界 時価総額ランキング トップ50」から上位20位を抜き出したものを使用しています。



使用するのはPlotly

使用するライブラリは、見た目のよいイマドキのグラフが作成できるPlotlyです。

サンプルコード


import pandas as pd
import plotly
import plotly.express as px

df = pd.read_csv('marketcap.csv',encoding='shift-jis')

fig = px.pie(df,values='count', names='country', title='Market Cap TOP20')
fig.update_layout(autosize=False,width=700, height=500,
                  margin=dict(l=30, r=30, b=30, t=50),)

fig.update_layout(font={"family":"Times New Roman"})
fig.update_layout(font = dict(size=15),title=dict(font = dict(size=30)))

fig.update_traces(textposition='inside', textinfo='percent+label+value',direction='clockwise')
fig.show()

コメント

  • 「df = pd.read_csv〜」で、csvファイルの読み込み
  • 「fig = px.pie〜」で、dfを読み込み円グラフを作成
  • 「fig.update_layout(font={“family”:”Times New Roman”})」でフォントを変更
  • 「fig.update_layout(font = dict(size=15),title=dict(font = dict(size=30)))」でフォントサイズを変更
  • 「textposition〜、textinfo〜」でグラフに記載するテキストを指定
  • 「direction=’clockwise’」でデータを時計回りに変更

フォントの変更、フォントサイズの変更は任意で。

directionはデータの並び順を決めています。デフォルトではデータが大きい順に反時計回りになります。

元データはこちら。

使用しているのはF列とG列です。

ほんとはC列を使用して、自動カウントするようにしたかったのですが、、、まあ次の課題ですね。

出力

サウジアラビアの石油会社がトップで、アメリカ企業が半数以上を占めていて、アジアでは中国、韓国、台湾の企業がランクイン。

ちなみに日本トップのトヨタが47位です。

↑Plotlyを使うならこれ!!Plotly&Dashが学べます!

↑データの前処理はPandasで。