[matplotlibで錯視] 6. エーレンシュタイン錯視2

その他

はじめに

エーレンシュタイン錯視2とは、十字と十字の間に円形が見える錯視のことである。このエーレンシュタイン錯視2をmatplotlibを用いて作成する。

コード

解説

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

背景色の設定

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)のようにすることで上下左右の枠線を非表示にできる。

図中の赤い線のプロット

l1, l2は線を描きたい座標を示している。[ax.plot(l1,(i,i),’r-‘) for i in np.linspace(0,1,3)]のように、まずl1をx軸の座標として、yの座標を(0,0), (0.5,0.5), (1,1)とした線分をリスト内包表記でプロットしている。同様にl2もプロットした。そして、x軸とy軸の座標を入れ替えてプロットしている。

図中の黒線のプロット

赤線の場合と同様の方法により、黒線もプロットした。

アスペクト比の調整

デフォルトの設定では、縦横比が等しくない。ax.axis(‘scaled’)とすることで、xとy軸の表示間隔を揃えることができる。

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

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

参考

エーレンシュタイン錯視 - Wikipedia

コメント