我有兴趣使用
python根据正方形的大小(以及可选的颜色)制作表示值大小的图表.基本上我正在寻找一种方法来概述一堆价值观,例如
windirstat与硬盘驱动器使用的好旧程序(它基本上会形成一个代表你的硬盘的大方块,然后构成它内部区域的小方块不同的程序,方块越大文件越大,颜色表示文件的类型).我对matplotlib非常熟悉,我认为用它做这样的事情是不可能的.有没有其他python包可以帮助?如果不是,任何更低级别的建议?我想如果我能找到一种以编程方式绘制框的方法,我可以手动完成(我并不真正关心格式,但导出SVG以及PNG的选项会很好).
最终,让它像windirstat一样具有互动性是很好的,如果你将鼠标悬停在一个特定的方格上,你可以获得更多信息,如果你点击它,也许你会进去看看它的构成特别广场.我只熟悉wxpython的GUI内容,不确定它是否可以用于这样的东西.现在我很乐意输出它们.
非常感谢!
亚历克斯
编辑:
谢谢大家,你的答案都很有帮助.
解决方法
您正在寻找
Treemapping算法.一旦实现,您可以将输出(应该是矩形)转换为绘制命令,以绘制任何可以绘制分层矩形的内容.
编辑:
更多链接和信息:
如果您不介意阅读论文,基于浏览器的d3库提供“方形”树图(js implementation).他们在Bruls,Huizing,and van Wijk之前参考了这篇论文.(这也是维基百科文章中的引用3)
我将搜索链接的维基百科文章中列出的算法.例如,他们还链接到this文章,该文章描述了“混合树图”的算法.本文还包括最后描述转换为非矩形形状的一些有趣部分.
Squarified肯定似乎是最常见的品种.以上链接应该足以让您努力寻求解决方案,甚至直接移植d3实现.然而,grokking d3模型(类似于jQuery的声明形式)的成本可能有点高.但是,乍一看,实施似乎相对简单.