[matplotlibで錯視] 14. Combined circle

その他

はじめに

中央の円の色が変化して見える錯視をmatplotlib FuncAnimationで作成して表示する。

コード

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

解説

モジュールのインポート

グラデーション画像生成関数

下記記事で用いたグラデーション画像生成関数を用いる。

[matplotlib] 58. 棒グラフのbarをグラデーションカラーで表示
matplotlibのplt.barで表示する棒グラフの棒の色をグラデーションカラーで表示する方法について説明する。

図の作成

autoscale_on=Falseで自動でスケールが変更されないようにする。

背景の作成

cmap=plt.cm.Greys, cmap_range=(0.9, 0.1)でcmapのGreysで黒から白に変化するグラデーションを表示する。

円の表示

座標(1,0.5)に半径0.15で色がグレースケールの0.5に該当する円を表示する。

円を動かすためのパラメータ

円をx軸方向に動かす。中心から右に行って、静止してから左に行き、静止してから中央に戻るような動きをするデータをnp.linspace()とnp.ones()で生成し、最後にhstack()でまとめている。

アニメーションの設定

円cをset_centerで動かす。yの位置は0.5固定でxの位置のみmoveの通りに動かす。

アニメーションの表示と保存

FuncAnimationでアニメーションを表示する。ani.save()でアニメーションを保存することができる。HTML(ani.to_html5_video())でjupyter labまたはnotebook上にアニメーションを表示できる。

参考

[matplotlib] 58. 棒グラフのbarをグラデーションカラーで表示
matplotlibのplt.barで表示する棒グラフの棒の色をグラデーションカラーで表示する方法について説明する。
matplotlib.animation.FuncAnimation — Matplotlib 3.9.2 documentation

コメント