创建树状图可视化

3 投票
6 回答
8651 浏览
提问于 2025-04-16 02:31

我想要一个用来创建树形图可视化的算法。

像这样:一个简单的树形图制作方法

问题是我不想用R语言……我想要源代码。最好是用Python或Java写的。

另外,我需要对它进行一些自定义……我想用图片代替颜色,所以能给我坐标的东西就太好了。

谢谢!

6 个回答

2

Prefuse 也实现了一个树形图(TreeMap)。这里有一个 示例。这是 这个示例的代码

4

这篇维基百科文章的最后有一些不错的链接。

我可能会先尝试一种简单的方法,就是用递归和按比例划分。首先在树的第一层,把目标区域垂直划分(这里的每个区域就是一个分支,区域的大小取决于分支的大小):

+-------+-------+-------+
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
+-------+-------+-------+

在第二层,水平划分:

+-------+-------+-------+
|       |       |       |
+-------+       |       |
|       +-------+       |
|       |       |       |
|       |       +-------+
|       |       |       |
+-------+-------+-------+

在第三层再垂直划分:

+--+----+----+--+----+--+
|  |    |    |  |    |  |
+--+-+--+    |  |    |  |
|    |  +-+--+--+    |  |
|    |  | |     |    |  |
|    |  | |     +---++--+
|    |  | |     |   |   |
+----+--+-+-----+---+---+

以此类推。

10

在SourceForge.net上,有一个叫做TreeMap Java库的项目,它是一个开源的程序,使用了Ben Schneiderman的论文中描述的算法。

此外,Schneiderman的Treemap历史页面上也有一个参考实现的链接。

撰写回答