我想制作统计数据的voronoi树图,比如 newsgraphy

你知道如何在Perl,PHP,Ruby或Python中做到这一点吗?

有帮助吗?

解决方案

其他提示

刚刚找到这个页面。我一直在使用Javascript / canvas进行Voronoi演示applet的工作,将Benjamin Dittes的C#版本的Steven Fortune算法转换为J#(在Code Project中可用,参见<!>“Fortune的Voronoi算法在C#中实现<!> QUOT)。这是在Javascript中包含Fortune的Voronoi算法的页面: http://www.raymondhill.net/voronoi/voronoi.php 这是第一次迭代,我计划进一步调整它以更好地适应Javascript。希望这会有所帮助。

首先,线条并不奇怪:这是因为这不是正常的Voronoi曲面细分,而是面积加权的Voronoi(AWT)曲面细分,甚至可能是质心Voronoi曲面细分(CVT)。话虽如此,为了使Voronoi区域(多边形)具有明显不同的区域(这将反映数据的某些属性),您需要AWT(最好实现为CVT以保持多边形的良好宽高比);正常的Voronoi算法(如上面一些人所建议的)将无法帮助您。可能没有可用的直接解决方案,特别是对于脚本语言,因为由于AWT的迭代更新步骤而导致的计算复杂性非常高。你应该在<!>上查看工作; Voronoi Treemaps <!>和<!>“动态Voronoi树图”<!>由Balzer等人。和Sud等人。了解算法,然后自己实现(你需要的一切都在他们的论文中)。

另一个Python答案似乎指向仅栅格解决方案。我也有兴趣解决这个问题(在Python中),我认为以下脚本可以形成一个可用的起点:

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

归档的存档副本

James Tauber正在编写一个使用JavaScript和财富算法的教程来绘制一个canvas元素中的Voronoi图: Voronoi Canvas Tutorial

它还没有完成(他是第4部分中的第3部分),但我认为已经足够完成它了。

Macrofocus TreeMap 的最新版本(2.0)可以选择Voronoi算法,等等。 / p>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top