2016-03-07 128 views
2

我的应用程序及提供访问这些应用程序的服务器的列表数据的可视化组数据的技术,也有大量的交叉,例如:使用d3.js

Servers 01-09 provide App A, App, B 
Servers 05-09 provide App C 
Servers 10-14 also provide App A 

目前我在一张纸上画了很多带有服务器和应用程序列表的框,并将它们分组到运行相同应用程序的服务器中。使用上面的示例:标记为01-09的框与App A和App B一起写入并与另一个标记为05-09的框重叠,其中写入App C.

我想将其转换为由d3(我也在学习d3)提供的可视化,我可以在网站上显示。我心中有一种超级venn diagram什么的?目标是轻松查看运行相同应用程序的服务器组。

是否有其他人有过这种可视化问题 - 您使用了哪些技术? d3内置了什么,可以在这种情况下使用?

回答

1

对我来说,要做到这一点最简单的方法是在一个表,因为你只有两个维度:

| Server | App A | App B | App C | 
|--------------------------------| 
| 01  | X |  |  | 
| 02  |  |  |  | 
etc 

如果你在d3.js(相当合理)设置,我会用一个Co-occurrence graph垂直服务器和水平应用。

或者,您可以尝试使用labelled force,应用程序具有一种形状,服务器具有另一种形状。我不认为它像桌子一样可读!

+0

服务器和应用程序的数量会让每个服务器的表一目了然,我喜欢共现图的外观,特别是可以将它分类为群集 - 我期待的可视化效果对于。我同意标注的力图不可读。 – JabbaWook

+0

您可以争辩说,有2个以上的维度(运行相同应用程序的服务器的数量 - 即运行应用程序A的01-09可以与作为另一维度的服务器数量分组在一起)? – JabbaWook

+1

啊。如果你有很多这些,那么过滤一张桌子是很好的。关于表格的好处还在于,您可以轻松地为那些喜欢使用Excel探索数据的人导出CSV导出。同现也可以做到这一点(也是我最喜欢的解决方案)。 回复:维度:我理解他们是衡量一个方向。你有两个措施:服务器和应用程序。分组创建一个“子流形”,但它仍然是一个维度。 –

1

在这种情况下的一个选项是使用二分图可视化。

https://en.wikipedia.org/wiki/Bipartite_graph

二部图的,你有两个不同的集合,其中有一组相同的成员以及所有边缘之间没有边是从一组到另一个节点的图表。

在这里,您可以将应用程序(A,B,C等)作为一个集合,将服务器(01-14)作为另一个集合。

此外,它取决于您想要通过此可视化实现的目标。例如,如果您的意图是显示并比较运行应用程序的服务器数量的服务器负载,则可以使用节点的大小对其进行编码。