【发布时间】:2011-03-14 13:28:47
【问题描述】:
假设我有一个很大的对象列表(数千或数万个),每个对象都带有一些标签。 有数十或数百种可能的标签,它们的使用遵循典型的幂律: 一些标签使用非常频繁,但大多数很少见。 事实上,除了最常见的几十个标签外,所有标签通常都可以忽略。
现在的问题是如何可视化这些标签之间的关系。 标签云可以很好地显示它们的频率,但它忽略了哪些标签与哪些其他标签一起出现。 假设标记 :bar 仅出现在也标记为 :foo 的对象上。 这应该在视觉上很明显。 对于倾向于一起出现的三个标签也是如此。
您可以将每个标签设为气泡并让它们部分重叠。
从技术上讲,这是一个维恩图,但以这种方式处理它可能很笨拙。
例如,谷歌图表可以创建维恩图,但只能用于 3 个或更少的集合(标签):
http://code.google.com/apis/chart/docs/gallery/venn_charts.html
他们将其限制为 3 套的原因是,它看起来太可怕了。
请参阅 Wikipedia 页面上的“对更多集合的扩展”:http://en.wikipedia.org/wiki/Venn_diagrams
但这只有在每个可能的交叉点都不为空的情况下。 如果不超过 3 个标签同时出现(可能在丢弃稀有标签之后),那么维恩图的集合就可以工作(气泡的大小代表标签频率)。
或者也许是一个图形(如在顶点和边中),具有视觉上较粗或较细的边来表示共现频率。
您有什么想法或工具或库的指针吗? 理想情况下,我会使用 javascript 来执行此操作,但我对 R 和 Mathematica 之类的东西或其他任何东西都持开放态度。 如果有人好奇,我很乐意分享一些实际数据(如果我告诉你它代表什么,你会笑)。
附录:我最初想到的应用程序是TagTime,但我突然想到这也很好地映射到了可视化一个人的美味书签的问题。
【问题讨论】:
-
您的问题似乎遗漏了有关编程的内容。
-
他问他应该使用哪些库。除非,他有兴趣看一本书,否则这可能是一个编程问题。
标签: javascript r charts visualization data-visualization