[matplotlibで錯視] 1. ハーマングリッド

その他

matplotlibでハーマングリッド錯視を作成する

ハーマングリッド錯視とは?

ハーマングリッド錯視は、白い背景に黒い格子状の線を描いたとき、格子の交差点に灰色の点(実際には存在しない)が見える現象です。この錯視効果は、人間の視覚システムにおける側抑制(lateral inhibition)という特性によって引き起こされると考えられています。本記事では、Pythonのmatplotlibライブラリを使用して、このハーマングリッド錯視を再現する方法を説明します。

コード

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

解説

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

figsize=(8,8)で四角の図を作成します。

背景色の設定

fig.patch.set_facecolor(‘white’) で図を含めた画像全体の背景を白にしています。また、ax.patch.set_facecolor(‘k’) で図の背景を黒にしています。

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

目盛ラベルを非表示にするには、plt.tick_params(labelbottom=False, labelleft=False)を使用します。 別の方法として、ax.xaxis.set_major_formatter(plt.NullFormatter())も使えます。

目盛自体を見えなくするには、plt.tick_params(color=’white’)で目盛を白色に設定します。 目盛の詳細な設定については下記を参照してください。

[matplotlib] 12. 目盛り
matplotlibのグラフにおける目盛りの設定方法を解説。主目盛りと副目盛りの調整、ラベルのカスタマイズ、対数目盛りの適用など、Pythonでデータ可視化を行う際に役立つテクニックを紹介しています。

図の枠線の設定

図の枠線は、ax.spines[‘right’].set_visible(False)のようにすることで非表示にできます。

グリッドの設定

黒背景に白いグリッドを表示することでハーマングリッドとしています。

まとめ

本記事では、Pythonのmatplotlibを使用してハーマングリッド錯視を作成する方法を紹介しました。格子点の交差部分に実際には存在しない灰色の点が見える現象を簡単なコードで再現できました。この錯視は人間の視覚システムの側抑制という性質によって生じるものであり、視覚情報処理の興味深い一例です。matplotlib を使うことで、このような視覚現象を簡単にプログラミングで表現できることがわかりました。

参考

ハーマングリッド - Wikipedia
錯視のカタログ

コメント

  1. […] [matplotlibで錯視] 1. ハーマングリッドハーマングリッド錯視をmatplotlibを用いて作成。sabopy.com2019.02.26 (adsbygoogle = window.adsbygoogle || []).push({}); […]