wxPythonで3Dチャートを表示

wxPythonでMatplotlibを使う - メグタンの何でもブログ の続き

Matplotlibで3Dグラフ表示

3Dのグラフを描画する時には 次の様に変える。

self.fig, self.ax = plt.subplots(subplot_kw={"projection": "3d"})

表示データは例えばこんな感じ

    def SampleData(self):
        x = y = np.arange(-3, 3, 0.01)
        X, Y = np.meshgrid(x, y)
        z = np.exp(-(X**2 + Y**2))
        self.ax.plot_surface(X,Y,z, cmap='terrain')

表示結果はこんな感じ

XYZの比をそろえて球を球として表示したい時とかは

        self.ax.set_box_aspect((1,1,1))

とかで表示される直方体領域のXYZ比率を設定して置き

        self.ax.set_xlim(-3.0, 3.0)
        self.ax.set_ylim(-3.0, 3.0)
        self.ax.set_zlim(-2.0, 4.0)

でスケールを揃えればいい。

詳しくはMatplotlibのドキュメントを見る
matplotlib.org