(각서) matplodlib로 3D 산점도 만들기

3D 산점도의 이미지를 만들고 싶었기 때문에,
google colaboratory에서 matplotlib를 사용하여 이미지 파일을 만들었습니다.

모든 점에 라벨을 붙이고 있습니다.
#matplotlibで日本語を使えるようにする
!pip install japanize-matplotlib

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot
from numpy.random import rand
from pylab import figure
from google.colab import files
import pandas as pd
import japanize_matplotlib

#散布図の各点のラベル名と3次元座標
#点が多い場合はcsvとか読みこんだ方がいいかも
df = pd.DataFrame({'ラード説': [20, 30, 20],
                   '鶏油説': [10, 15, 15],
                   '香味油説': [5, -10, 10],
                   'ウェイパー説': [40, 50, 25],
                   '味の素説': [15, -30, -15],
                   '中華鍋説': [0, 0, 50],
                   '鍋のあおり説': [0, 5, 30],
                   '硬めご飯説': [-20, 20, 40],
                   'タイ米説': [-15, -25, 45],
                   '卵かけご飯説': [-35, -15, 45],
                   '酒説': [10, -20, -30],
                   'マヨネーズ説':[-5, 20, -10],
                   'チャーシュー説': [40, 10, -15],
                   '水島流チャーハン説':[10, -50, -50]
                   })

#画像サイズと解像度
fig = figure(figsize=(10, 10), dpi=100)
ax = fig.add_subplot(111, projection='3d')

#各点を描画していく
for i in range(df.shape[1]):
 ax.scatter(df.iloc[0,i],df.iloc[1,i],df.iloc[2,i])
 ax.text(df.iloc[0,i],df.iloc[1,i],df.iloc[2,i],  '%s' % (df.columns[i]), size=15)

#軸ラベル
ax.set_xlabel('美味しい - 微妙')
ax.set_ylabel('素材の味 - 調味料の味')
ax.set_zlabel('しっとり - パラパラ')

#軸の長さ
ax.set_xlim(-55, 55)
ax.set_ylim(-55, 55)
ax.set_zlim(-55, 55)

#出力するpngファイル名
pyplot.savefig( '炒飯のコツ-3D-散布図.png' )
pyplot.show()
#pngファイルのDL
files.download('炒飯のコツ-3D-散布図.png')



※덧붙여서 이 그림은 내가 쓰고 있다 볶음밥 블로그 로 사용한 것입니다.

좋은 웹페이지 즐겨찾기