見出し画像

Pythonを用いたドーナツグラフによる可視化ーeMAXIS Slim 全世界株式(オール・カントリー)の対象インデックスの地域別構成比率

はじめに


この記事では、eMAXIS Slim 全世界株式(オール・カントリー)の対象インデックスの国・地域別構成比率のドーナツグラフをPythonを用いて作成します。
この作成の意図は、eMAXIS Slim 全世界株式(オール・カントリー)の対象インデックスの国・地域別構成比率のドーナツグラフを自由に加工して使えるようにしたくて作成しました。

対象データ

対象とするデータは楽天証券で公開されているeMAXIS Slim 全世界株式(オール・カントリー)の目論見書に記載されている対象インデックスの地域別構成比率です。

作成したデータとPythonコードの公開

こちらのGithubにてデータおよびPythonコードを公開しています。

データの抽出とエクセルのまとめ

目論見書から国名と構成比率をエクセルにまとめます。このファイル名を「vt.csv」として保存します。

構成国名と構成比率の関係

Pythonコードの作成

以下が作成したコードです。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

#csvの読込
df = pd.read_csv('vt.csv')

#国・地域のリストを作成
label = df['Country'].values.tolist()

###グラフ作成
fig = plt.figure()
plt.title('<対象インデックスの国・地域別構成比率>')
plt.text(-1.2,-1.2,'eMAXIS Slim 全世界株式(オール・カントリー),2022.2.28',size =7)
plt.rcParams['font.sans-serif'] = 'MS Gothic' 

# 国・地域別の割合の円グラフ (外側)
x1 = df['Rate'].values
plt.pie(x1, labels=label, counterclock=False, autopct="%.1f",pctdistance=0.9,startangle=90,labeldistance=1.0,rotatelabels=True)

###先進国と新興国、それぞれの割合を算出
#その他のインデックスを求める
rate = [i for i in range(0,len(label)) if label[i] == 'その他']
#1個目のその他までの割合の合計を算出 = 先進国全体の割合
num1 = np.array([float(x1[i]) for i in range(0,rate[0]+1)]).sum()
#2個目のその他までの割合の合計を算出 = 新興国全体の割合
num2 = np.array([float(x1[i]) for i in range(rate[0]+1,rate[1]+1)]).sum()

# 先進国と新興国の比率に関する円グラフ (内側, 半径 70% で描画)
x2 = np.array([num1, num2])
label2 = ['先進国','新興国']
colors = ["orange", "gray"]
plt.pie(x2, labels=label2, counterclock=False, startangle=90, radius=0.7,labeldistance=0.8,wedgeprops={'linewidth': 3, 'edgecolor':"white"},colors=colors)
 
# 中心 (0,0) に 40% の大きさで円を描画
centre_circle = plt.Circle((0,0),0.4,color='black', fc='white',linewidth=1.25)
fig = plt.gcf()
fig.gca().add_artist(centre_circle)

#plt.show()
fig.savefig('対象インデックスの国_地域別構成比率.png')

作成したドーナツグラフ

上記のcsvデータとPyhtonコードで作成されたグラフは下図のようになります。2重のドーナツグラフで先進国と新興国の比率、国別構成比率がわかるグラフが作成されました。色合いが課題ですね・・・。
もっと見やすい方法があるかと思いますので、ご指摘たくさんいただけると幸いです。

e MAXIS Slim 全世界株式の対象国・地域別構成比率

おわりに

この記事では、eMAXIS Slim 全世界株式(オール・カントリー)の対象インデックスの地域別構成比率のドーナツグラフをPythonを用いて作成しました。
これが皆様のお役に立てば幸いです。

この記事が気に入ったらサポートをしてみませんか?