Pythonできれいな散布図+イテレーションごとの変化過程+ラベル表示 を描くために?(コードつき)

A8バナー広告

この記事を読んでわかること

こういうを描くスクリプト

時系列と共に変化する散布図を描きたい人にオススメです。

コード

Python3.7で実行しました。

コードの解説

前回にこんな記事を書きました。この記事に入ってないことは前回の記事を。

legendを表示しない

まずlegendを表示しないことにします。のscatterplotメソッドの引数を変更するだけです。

legendを手動作成する

legendを手動作成してしまうのがもっとも簡単だと判断しました。

.patches.matchesメソッドを使えば、実現できます。

イテレーションの途中だけを選択する

散布図は最大10個までの表示に決めました。縦にながすぎる画像を見たい人は多くないでしょう。

アルゴリズムで大切なところは、最初と最後と途中だと思います。

ということで、途中をランダムサンプリングします。最終的に10個におさまるようにしました。

この記事を書こうと思ったきっかけ

前回のコードで描いた最適化の様子を人に見せることになりました。

で、最適化の変化具合を探るためにイテレーション数を増やしたんですね。するとこのとおり・・・

これには「うわっ、私のグラフ、汚すぎ・・・」という気持ちを隠しきれません。

そこで、次の2つ対策をすることにしました。

  1. legend表示を1つだけにする。
  2. 最適化途中で最初と途中と最後の見せる。ぜんぶあわせて10個のグラフに限定する。

この改修が5分程度でおわるだろうと思ったら1時間近くかかりました。

もう忘れないようにするために記事にしました。