はじめに
中央の円の色が変化して見える錯視を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上にアニメーションを表示できる。
参考
Combined circles pic.twitter.com/22y6KkV7hi
— Akiyoshi Kitaoka (@AkiyoshiKitaoka) January 29, 2020
[matplotlib] 58. 棒グラフのbarをグラデーションカラーで表示
matplotlibのplt.barで表示する棒グラフの棒の色をグラデーションカラーで表示する方法について説明する。
matplotlib.animation.FuncAnimation — Matplotlib 3.9.3 documentation
コメント