はじめに
matplotlib mplot3dで作成する3Dグラフでアスペクト比を揃えるために、ax.set_aspect(‘equal’)とすると、NotImplementedErrorが出るようになった(matplotlib 3.1.0から)。下記サイトにその理由が書いてある。
具体的には、以下のようになる。
ここでは、ax.set_aspect(‘equal’)を使わずにアスペクト比を揃える方法について検討した。
figsizeを変更
plt.figaspect(1)の場合

figsizeをplt.figaspect(1)とすることでfigの大きさ自体のアスペクト比が揃うので図のアスペクト比も揃うことになる。
plt.figaspect(1)の値としては(4,4)となる。
plt.figaspect(0.5)の場合

figsizeをplt.figaspect(0.5)とすることで横長の図となる。
plt.figaspect(0.5)の値としては(8,4)となります。
figsize=(6,6)の場合

figsizeを直接指定することでもアスペクト比の揃った図が得られる。
axesのサイズを設定
add_axes

fig.add_axes()によりaxesの大きさを指定することによってもアスペクト比を揃えることができる。
get_figwidth,get_figheightで得られる値は以下の通りとなる。
set_box_aspectで設定
matplotlib3.3以降では、set_box_aspectにより3Dグラフのアスペクト比を変えることができる。



コメント