非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】バブルチャートを作る方法(Matplotlib)

   

Python/Matplotlibでバブルチャートを描く方法について解決します。以下の図が今回の完成です。

 

バブルチャートを作る方法をざっと書くとこんな感じです。

  • 3つの配列データを用意(x軸、y軸、バブルサイズ)。
  • x軸、y軸データを使って散布図を描画。
  • マーカー1点1点をバブルサイズデータに応じてサイズを変える。
  • マーカーの透明度を50%にする。

 

ソースコードはこちら。これを実行すると上のチャートが現れます。

import numpy as np
import matplotlib.pyplot as plt

#バブルのサイズ(好みに応じて)
bubble_size = 60
#利益率データ(X軸)
x =np.array( [ 6.7,  10.7,  2.8,  1.2,  8.6,  6.2])
#売上データ(Y軸)
y = np.array([ 628,  425,   450,  821,  543,  707])
#人員データ(バブルサイズ)
num = np.array([38,120,193,69,99,48])

fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1)
ax1.scatter(x, y,  s=num*bubble_size, alpha=0.5)

# x軸の範囲を変更する
ax1.set_xlim(0, 12)
# y軸の範囲を変更する
ax1.set_ylim(200, 1000)
# x軸ラベル
ax1.set_xlabel('profit rate [%]')
# y軸ラベル
ax1.set_ylabel('sales [million yen]')

#バブル上に人員をラベル表示
for i in range(len(x)):
    ax1.annotate(num[i],xy=(x[i],y[i]),size=10,color="black")
 
plt.show()
 

 

スポンサーリンク

 - Python