質問

Pythonを使用して、正方形のサイズ(およびオプションでは色)に基づいて値のサイズを表す図を作成することに興味があります。基本的に私は古き良きプログラムのような価値の束の概要を作る方法を探しています Windirstat ハードドライブの使用法(基本的には、ハードドライブを表す大きな正方形になり、その後、内部の領域を構成する小さな正方形が異なるプログラムを表す領域を構成します。正方形が大きいほどファイルが大きくなると、色はファイルの種類を示します)。私はMatplotlibにかなり精通しており、それでこのようなことをすることはできないと思います。他に役立つPythonパッケージはありますか?そうでない場合、より低いレベルの何かに対する提案はありますか?プログラムでボックスを描く方法を見つけることができれば手動でそれを行うことができたと思います(フォーマットはあまり気にしませんが、SVGとPNGをエクスポートするオプションはいいでしょう)。

最終的に、Windirstatのようにインタラクティブにするのはいいことです。特定の広場の上にホバリングする場合、それについてもっと情報が得られます。特定の正方形。私はGUIのものについてはWXPythonのみに精通していますが、このようなものに使用できるかどうかはわかりません。今のところ、私はそれらを出力するだけで満足しています。

どうもありがとう!アレックス

編集:ありがとうございます、あなたの両方の答えは大いに役立ちました。

役に立ちましたか?

解決

あなたが探しています Treemapping アルゴリズム。実装されたら、出力(長方形である必要があります)を、層状の長方形を描くことができるものにコマンドをプロットするように変換できます。

編集:

より多くのリンクと情報:

ペーパーを読んでも構わない場合は、ブラウザベースです D3 ライブラリは「四分位」のトリマップを提供します(JS実装)。彼らはこの論文を参照します Bruls、Huizing、およびVan Wijk. 。 (これはウィキペディアの記事の引用3でもあります)

リンクされたウィキペディアの記事にリストされているアルゴリズムで検索します。たとえば、リンクもリンクしています これ 「混合ツリーラップ」のアルゴリズムを説明する記事。この論文には、最後にいくつかの興味深い部分が含まれており、他の長方形の形状への変換を説明しています。

Squarifiedは確かに最も一般的な品種のようです。上記のリンクは、ソリューションに向けて取り組むのに十分なものであるか、D3の実装を直接移植するのに十分である必要があります。ただし、Grokking D3のモデル(jQueryの宣言的な形式のようなもの)のコストはやや高い場合があります。ただし、一見、実装は比較的簡単に見えます。

他のヒント

Squaremap これをします。私はそれを使用していません(私はそれを知っています Runsnakerun)そして、その文書は非常に不足していますが、それは機能しているようです。

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