[SciPy] 23. convex_hull_plot_2dによる凸包(とつほう)の表示

python

はじめに

この記事では、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パラメータで指定します。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

ConvexHull — SciPy v1.16.1 Manual
convex_hull_plot_2d — SciPy v1.16.1 Manual

コメント