Matplotlibで何千もの円を高速にプロットする方法
Matplotlibで何千もの円を素早く描画したい場合には、matplotlib.collectionsモジュールを活用するのが最適です。本記事では、その中でもCircleCollectionクラスを使った高速な描画方法を解説します。
通常、個々の円をパッチとして1つずつ軸に追加していくと、オブジェクト数が膨大になり描画速度が大きく低下します。一方、CircleCollectionを使えば、すべての円を1つのコレクションとしてまとめて扱えるため、レンダリングが大幅に高速化されます。大量のデータポイントを可視化する際に非常に有効な手法です。
手順
- matplotlibからcollectionsパッケージを、pyplotおよびnumpyと一緒にインポートします。
- 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
- 小さな円の個数を表す変数「num」と、円のサイズを格納する変数「sizes」を初期化します。
- 円パッチのリストを作成します。
- 現在の軸に円パッチのアーティストを追加します。
- 軸のマージンを設定します。
- show()メソッドを呼び出して図を表示します。
コード例
import numpy as np import matplotlib.pyplot as plt import matplotlib.collections as mc plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True num = 1000 sizes = 50 * np.random.random(num) xy = 10 * np.random.random((num, 2)) patches = [plt.Circle(center, size) for center, size in zip(xy, sizes)] fig, ax = plt.subplots() collection = mc.CircleCollection(sizes, offsets=xy, transOffset=ax.transData, color='green') ax.add_collection(collection) ax.margins(0.01) plt.show()
出力結果
上記のコードを実行すると、次のような出力が得られます。


-
MatplotlibでグラフのX軸とY軸を入れ替える方法
Matplotlibでグラフの軸(X軸とY軸)を入れ替えたい場合、subplots()メソッドを使って図(figure)を作成し、2つのサブプロットを追加する方法が便利です。1つ目のサブプロットに曲線を描画し、そのX・Yデータを抽出して、2つ目のサブプロットの曲線に設定し直すことで、軸を入れ替えたグラフを作成できます。 手順 NumPyを使って、xとyのデータポイントを作成します。 図を作成し、2つのサブプロットを追加します。 両方のサブプロットにタイトルを設定します。 plot()メソッドを使って、xとyのデータポイントをプロットします。 get_xdata()とget_ydata()を使
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線