2012-01-15 6 views
6

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

最終的には、windstatのようにインタラクティブにするのがいいでしょう。特定の広場にカーソルを合わせると詳細情報が表示され、クリックした場合は、その特定の広場の構成。私はGUI用のwxpythonにしか慣れていないので、このようなものに使うことができるかどうかはわかりません。今のところ私はそれらを出力することに満足しています。

ありがとうございます! アレックス

編集: ありがとうございました。両方の回答が助けになりました。

+2

「私はmatplotlibにかなり精通しており、このようなことをすることはできません。」 matplotlibの限界はどれですか?私はそれが異なるサイズのsqauresを描くことができると思う... – joaquin

+0

まあ私は[MatPlotLibが描くことができる]ヒントンの図のようなものを探していると思います(http://www.scipy.org/Cookbook/Matplotlib/HintonDiagrams)ボックス間のスペースはありません。これは円グラフのようになりますが、正方形になります。 –

答えて

7

あなたはTreemappingアルゴリズムを探しています。一度実装すると、出力(四角形でなければならない)をコマンドを描画して、レイヤード矩形を描画できるものに変換することができます。

編集:

詳しいリンクと情報:あなたが新聞を読んで気にしない場合は

、ブラウザベースのd3ライブラリーは、 'squarified' ツリーマップ(js implementation)のために用意されています。彼らはBruls, Huizing, and van Wijkによってこの論文を参照しています。 (これはウィキペディアの記事の引用3でもあります)

リンクされたWikipediaの記事に記載されているアルゴリズムを検索したいと思います。たとえば、それらはまた、thisの記事にリンクしています。この記事では、「混合ツリーマップ」のアルゴリズムについて説明しています。また、最後には長方形以外の形への変換を説明する興味深い部分も含まれています。

Squarifiedは確かに周囲で最も一般的な多様性のようです。上記のリンクは、ソリューションに向かって作業するか、d3実装を直接移植することさえ可能です。しかし、d3のモデルをgrokkingするコスト(jQueryの宣言型のようなもの)はいくぶん高いかもしれません。一見すると、実装は比較的簡単に見えます。

+0

ニース、はい私はTreemappingがまさに私が探しているものだと思います。 [このリスト](http://en.wikipedia.org/wiki/List_of_treemapping_software)はすべて独占的なものですが、オープンソースのオプションがあるかどうか知っていますか? –

1

Squaremapこれです。私はそれを使用していない(私はRunSnakeRunから知っている)、その文書はひどく欠けているが、うまくいくようだ。

+0

ありがとうございます。私が探しているもののように見えますが、ダウンロードしましたが、ドキュメントがかなり...ありません。 –

+0

RunSnakeRunソースの解読を試みるか、著者に連絡してください。それは多くの仕事かもしれませんが、同じことをあなた自身で書くほどではないでしょうし、コードを理解すれば状況を改善することさえ可能かもしれません。 –

関連する問題