はじめに
エーレンシュタイン錯視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
コメント