#Jupyter Notebookでインタラクティブなプロット
シンプルな例を見つけられなかったので、メモとして作成。
詳細な説明やセットアップは下記を参照のこと。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from ipywidgets import interact, FloatSlider, IntSlider
import numpy as np
x = y = np.arange(-20, 20, 0.5)
X, Y = np.meshgrid(x, y)
Z = X*X + 2 * Y*Y
@interact(elev=IntSlider(min=-180, max=180, step=10, value=30, continuous_update=False),
azim=IntSlider(min=-180, max=180, step=10, value=30, continuous_update=False))
def plot_3d(elev, azim):
# Figureの設定
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
# 3Dグラフを表示
ax.plot_surface(X, Y, Z)
# 3Dグラフの見る方向の初期値を設定
ax.view_init(elev=elev, azim=azim)
plt.show()