Matlab의 scatter/scatter3을 파이썬으로

이것이 할 수 없다고 이야기가 되지 않는, 2D/3D 산포도.
MATLAB에서 말하는 scatter나 scatter3 상당의 것.

matplotlib을 사용하여 할 수 있습니다.
2D/3D의 차이는 axis를 2D로 만드는지 3D로 만드는지를 바꾸는 것만으로, 나머지는 거의 함께.

2차원의 경우


import numpy as np
import matplotlib.cm as cm
import matplotlib.pyplot as plt

x = np.random.rand(500, 2)
y=((x-0.5)**2).sum(axis=1)**0.5

fig = plt.figure(figsize=(6.4,4.8),dpi=72)
    # figsizeはインチ単位。デフォルト(6.4,4.8) 
    # dpiはデフォルト 100

#2d散布図
ax = fig.add_subplot(1, 1, 1, title='Title', xlabel='X', ylabel='Y')
    #titleなどはあとからax.set_title() ax.set_xlabel などで変更可
sc = ax.scatter(x[:, 0], x[:, 1], vmin=0, vmax=1, c=y, cmap=cm.jet)

#カラーバー
cb=fig.colorbar(sc)
plt.show()
fig.savefig('2d.png')

결과


3차원의 경우


#カラーバー
cb=fig.colorbar(sc)
plt.show()
fig.savefig('/Users/miyawaki/Desktop/2d.png')


import numpy as np
import matplotlib.cm as cm
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D

x = np.random.rand(500, 3)
y=((x-0.5)**2).sum(axis=1)**0.5

fig = plt.figure(figsize=(6.4,4.8),dpi=72)
    # figsizeはインチ単位。デフォルト(6.4,4.8) 
    # dpiはデフォルト 100

#3D散布図
ax = Axes3D(fig)
sc=ax.scatter(x[:, 0], x[:, 1], x[:, 2], c=y, cmap=cm.jet)

#タイトルと軸ラベル
ax.set_title("Title", fontsize=8)
ax.set_xlabel("X", fontsize=7)
ax.set_ylabel("Y", fontsize=7)
ax.set_zlabel("Z", fontsize=7)
#tick labelのフォントサイズ
plt.tick_params(labelsize = 6)

#カラーバー 0.6倍に縮小
cb=fig.colorbar(sc,shrink = 0.6)
    #水平にするときはorientationにhorizontalを追加
    #cb=fig.colorbar(sc,shrink = 0.6, orientation="horizontal")

#カラーバーのlabel、tick label
cb.set_label("Color", fontsize=7)
cb.ax.tick_params(labelsize=6)

plt.show()
fig.savefig('3d.png')

결과


…미조정은 맛있게 조사합시다.

좋은 웹페이지 즐겨찾기