はじめに
matplotlibのtriplotを使って、順次出現するデータにドロネー三角形分割を適用したアニメーションを作成した。
コード
解説
モジュールのインポート
データの生成
np.random.randint(27)により0から1の範囲を要素としてもつサイズが27の形状の配列(np.array)を生成する。
アニメーションの設定
最初にax.cla()ですでに表示されいるグラフを消す。
次にax.set_aspectなどで見た目の調整をする。
tri.Triangulation(x[:3+num], y[:3+num])でドロネー三角形分割を行う。返り値としては、点の情報と三角の辺の情報を含むデータが得られる。
このデータをtriplotでplotすることでドロネー三角形分割が表示できる。
分割に用いるデータをx[:3+num], y[:3+num]のようにすることで増やすことでアニメーションとしている。
アニメーションの表示
FuncAnimation でアニメーションを表示する。25はフレーム数でintervalの200は画面が切り替わる時間(ms)となる。HTML(ani.to_html5_video())とすればjupyter notebook上にアニメーションをうまく表示できる。
frame数=50
frame数=100
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
Triplot Demo — Matplotlib 3.1.0 documentation
ドロネー図 - Wikipedia
コメント