[matplotlibで錯視] 4. カフェウォール錯視

その他

matplotlibでカフェウォール錯視を作成する

カフェウォール錯視とは?

カフェウォール錯視とは、正方形と灰色の水平線で構成された錯視で、灰色の水平線が傾いて見える。このカフェウォール錯視をmatplotlibを用いて作成する。

コード

コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートと図の作成

figsize=(10,6)で横長の図を作成。

背景色の設定

fig.patch.set_facecolor(‘white’), ax.patch.set_facecolor(‘white’) で図を含めた画像全体の背景と図の背景を白にしている。

目盛と目盛ラベルを非表示

plt.tick_params(labelbottom=False, labelleft=False)で目盛ラベルを非表示にし、plt.tick_params(color=’white’)で目盛を白にして見えなくしている。

図の枠線の設定

図の枠線は、ax.spines[‘left’].set_visible(False)のようにすることで上下左右の枠線を非表示にできる。

グリッドの設定

ax.yaxis.set_major_locator(plt.MultipleLocator(0.1))でy軸のグリッドの表示する間隔を0.1きざみとしている。ax.axis([0.05, 0.95, 0.05, 0.95])で表示範囲を設定し、ax.grid(axis=’y’, color=’gray’,lw=2)でy軸にのみ灰色のグリッドを表示。

黒い四角の表示

■はデータをプロットすることで表示する。x,y = np.meshgrid(np.linspace(0.15,0.85,6),np.linspace(0.15,0.85,8))で格子状のmeshgridデータを生成し、それを、x[1,:] +=0.015のようにして、段階的にずらしていく。

この加工したデータを、ax.plot(x,y,’s’,markerfacecolor=’k’,markeredgecolor=’gray’, ms=36)のようにすることで黒い四角(■)でデータがプロットされる。

参考

カフェウォール錯視

コメント