ボロノイツリーマップを作成するにはどうすればよいですか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/838265

  •  10-07-2019
  •  | 
  •  

質問

次のような統計データのボロノイツリーマップを作成したい alt text ニュースグラフィー

Perl、PHP、Ruby、またはPythonでそれを行う方法を知っていますか?

役に立ちましたか?

解決

他のヒント

このページが見つかりました。 Benjamin DittesによるSteven FortuneのアルゴリズムのC#バージョンをJavascriptに変換した後、Javascript / canvasを使用してVoronoiデモアプレットに取り組んできました(Code Projectで入手可能、「FortuneのVoronoiアルゴリズムをC#で実装」を参照)。 FortuneのVoronoiアルゴリズムをJavascriptに含むページを次に示します。 http://www.raymondhill.net/voronoi/voronoi.php これは最初のイテレーションです。Javascriptにより適したものになるようにさらに適応させる予定です。これがお役に立てば幸いです。

まず、線は奇妙ではありません:これは通常のボロノイ分割ではなく、面積加重ボロノイ(AWT)分割、おそらくは重心ボロノイ分割(CVT)であるという事実の結果です。つまり、大幅に異なる領域(データの属性を反映する)を持つボロノイ領域(ポリゴン)を使用するには、AWT(ポリゴンの適切なアスペクト比を保持するためにCVTとして実装することが望ましい)が必要です。通常のボロノイアルゴリズム(上記の一部の人によって提案された)は、あなたを助けることができません。 AWTの反復的な更新手順による計算の複雑さが非常に高いため、特にスクリプト言語ではなく、これに対する直接的な解決策はおそらくないでしょう。 「Voronoi Treemaps」に関する作業を調べる必要があります。および「動的ボロノイツリーマップ」バルザー他による。およびスッド等。アルゴリズムのアイデアを得て、それを自分で実装します(必要なものはすべて彼らの論文にあります)。

他のPythonの答えは、ラスターのみのソリューションを指しているようです。私はこの問題を(Pythonで)解決することにも興味があり、次のスクリプトが有用な出発点を形成できると思います。

http://www.oxfish.com/python/voronoi.py

ウェイバックでアーカイブされたコピー

James Tauberは、JavaScriptと Fortuneのアルゴリズムを使用して、 canvas 要素のボロノイ図: Voronoi Canvasチュートリアル

まだ完全ではありませんが(彼は4/3のパート3にいます)、それを完了するのに十分だと思います。

Macrofocus TreeMap の最新バージョン(2.0)には、オプションとしてVoronoiアルゴリズムがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top