はじめに
この記事では、SciPyライブラリのspatial
モジュールにあるConvexHull
クラスとconvex_hull_plot_2d
関数を使って、2次元データの凸包(点集合を包む最小の凸多角形)を計算・可視化する方法を解説します。基本的な使い方から応用例まで、わかりやすく説明していきます。
凸包とは
凸包(Convex Hull)とは、与えられた点集合を包含する最小の凸多角形のことです。簡単に言えば、点集合を輪ゴムで囲んだときにできる形状をイメージするとわかりやすいでしょう。
コード&解説
モジュールのインポート
cyclerを使ってプロットの透明度と色を指定しました。
バージョン
データの作成と凸包の計算
データ数を10、100、1000、10000と段階的に変化させてランダムな値を生成します。これらのデータは原点からの距離と角度をランダムに設定して作成します。生成したデータに対して、ConvexHullを使って凸包を計算します。この凸包の計算には、Qhull libraryが使用されています。
結果の表示
convex_hull_plot_2d()関数を使用して凸包の結果を表示できます。この関数にはConvexHullオブジェクトと、表示したいaxesをaxパラメータで指定します。

参考
ConvexHull — SciPy v1.16.1 Manual
convex_hull_plot_2d — SciPy v1.16.1 Manual
コメント