8

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

最終的には、windirstatのようにインタラクティブであると便利です。特定の正方形にカーソルを合わせると、その正方形に関する詳細情報が表示されます。クリックすると、その正方形の構成が表示されます。特定の正方形。私はGUI用のwxpythonに精通しているだけで、このようなものに使用できるかどうかはわかりません。今のところ、それらを出力するだけで満足しています。

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

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

4

2 に答える 2

8

ツリーマッピングアルゴリズムを探しています。実装すると、出力(長方形である必要があります)を、レイヤー化された長方形を描画できるものにプロットコマンドに変換できます。

編集:

その他のリンクと情報:

論文を読んでもかまわない場合は、ブラウザベースのd3ライブラリが「二乗」ツリーマップ(js実装)を提供します。彼らは、Bruls、Huizing、およびvanWijkによるこの論文を参照しています。(これはウィキペディアの記事の引用3でもあります)

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

四角化は確かに周りで最も一般的な品種のようです。上記のリンクは、ソリューションに向けて作業するのに十分なものであるか、d3実装を直接移植するのに十分なはずです。ただし、d3のモデル(jQueryの宣言型のようなもの)を作成するコストは多少高くなる可能性があります。ただし、一見すると、実装は比較的簡単に見えます。

于 2012-01-15T18:58:37.283 に答える
2

Squaremapはこれを行います。私はそれを使用したことがなく (私はRunSnakeRunからしか知りません)、そのドキュメントはひどく不足していますが、機能しているようです。

于 2012-01-15T18:41:23.583 に答える