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

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

Pythonで3D散布図を描く

   

前回に続きPythonでグラフ描画です。今回は↓こんな風に3Dの散布図を作ります。

広告

3D散布図のソースコード

3Dグラフだから複雑なコードと思われがちですが、実施は以下のような20行以下の小さなコードで実現できます。mpl_toolkits.mplot3dのAxes3Dライブラリを使います。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy import genfromtxt

# グラフ作成
fig = plt.figure()
ax = Axes3D(fig)

x1 = [5, 8, 2, 6, 8, 3, 5, 4, 7, 8, 4, 5, 2, 4, 3, 6, 4, 6, 2, 8, 3, 8, 7]
y1 = [4, 8, 7, 8, 2, 3, 3, 3, 7, 8, 2, 2, 5, 5, 2, 3, 7, 7, 7, 6, 5, 4, 7]
z1 = [6, 3, 6, 4, 4, 4, 3, 7, 5, 4, 2, 7, 2, 6, 3, 8, 6, 3, 3, 3, 8, 3, 7]

x2 = [10, 9, 6, 7, 6, 9, 9, 5, 8, 10, 12, 6, 9, 9, 7, 10, 10, 11, 9, 6, 8, 7, 9]
y2 = [9, 8, 5, 10, 10, 11, 9, 13, 13, 10, 7, 9, 10, 7, 9, 12, 8, 8, 5, 6, 13, 13, 6]
z2 = [13, 8, 5, 11, 10, 5, 8, 6, 5, 8, 5, 11, 5, 5, 13, 5, 8, 12, 5, 8, 13, 6, 12]

ax.scatter(x1, y1, z1)
ax.scatter(x2, y2, z2)

plt.show()
 

 

このライブラリの優れているところは、グラフをマウスでドラッグするとグラフが回転してくれるという点。

 

マーカーサイズと色を変えてみる

scatter関数の引数に以下を加えるとマーカーサイズと色が設定できます。以下の例はマーカーサイズを50、マーカー色を赤と青に設定しています。

ax.scatter(x1, y1, z1, s=50, c="red")
ax.scatter(x2, y2, z2, s=50, c="blue")
 

 

広告

 - Python