Matlabのscatter/scatter3をPythonで
10506 ワード
これができないと話にならない、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')
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')
#カラーバー
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')
…微調整はおいおい調べましょう。
Author And Source
この問題について(Matlabのscatter/scatter3をPythonで), 我々は、より多くの情報をここで見つけました https://qiita.com/HiroMiyawaki/items/f3087ecf047d17fad003著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .