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)のようにすることで黒い四角(■)でデータがプロットされる。
コメント