[matplotlib 3D] 24. trisurf

matplotlib 3D
スポンサーリンク

matplotlib mplot3dでプリングルスの形

コード

でできる図。

解説

radii = np.linspace(0.125, 1.0, n_radii)

rが0だとデータがダブっているのがたくさんできるので0.125からの数列。

angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)[..., np.newaxis]

endpoint=Falseで2πを含まない数列、[…, np.newaxis]で次元を追加している。[…, np.newaxis]がないとraddi*np.cos(angles)の計算ができない。

x = np.append(0, (radii*np.cos(angles)).flatten())

np.appendで配列を追加。raddiとnp.cos(angles)の配列のブロードキャストかつflattenで一次元化しているので、8*36 = 288個の配列となる。0をいれると289個。[1]

ax.plot_trisurf(x, y, z, linewidth=0.2, antialiased=True)

で三角形のsurfaceグラフができる。xyzはmeshgrid的なデータではなく、1次元なデータとなっている。

antialiased=False

色を変える

color=’#eff759′

見た目がよりプリングルスに近づいた。

参考

  1. NumPyのブロードキャストのメリットと解説 – DeepAge 

コメント