如何显示多重比较的结果

问题描述 投票:1回答:4

如果比较两组数据(例如两个文件),这些集之间的差异可以显示在两列或两个窗格中,例如WinMerge。

但是有没有可视化范例来显示多个数据集之间的差异?

更新

我的问题的出发点是假设显示2个文件之间的差异相对容易,正如我提到的WinMerge,而比较3个或更多的文本文件变得更复杂,因为在它们之间会有越来越多的差异,比方说,随时间创建的文档的不同版本。

您如何突出显示两个版本中相同但与其他版本不同的文件部分?

我想到的数据集是对象(A,B,C,...),它们可能存在也可能不存在,并且具有可以设置或不设置的属性(a,b,c,...)。

例:

集合1:A(a,b,c),B(b,c),C(c)

第2组:A(a,b,c),B(b),C(c)

第3组:A(a,b),B(b)

如果您比较2组,例如在图1和2中,差异将在B(c)中。比较集合2和3导致差异A(c)和C()。

如果你比较所有3组,你最终得到3个比较(n *(n-1)/ 2)

comparison visualization data-visualization data-comparison
4个回答
1
投票

我有一些不同于提供答案的人的观点 - 即,你需要进一步指明问题。抽象层次是正确的。进一步的规范会使问题更容易,但解决方案不太有用。

几年前,我在graphic上看到了一个ProgrammableWeb - 它将雅虎搜索结果与谷歌搜索结果进行了比较。有很多信息需要记录:一些结果在两组中,一些只在一组中,并且共同结果在相应引擎的结果中将具有不同的位置,这必须以某种方式显示。

我喜欢图形并在Matplotlib(一个Python科学绘图库)中重新实现它。下面是一个使用一些随机点以及用于生成它的python代码的示例:

from matplotlib import pyplot as PLT
xvals = NP.array([(2,3), (5,7), (8,6), (1.5,1.8), (3.0,3.8), (5.3,5.2), 
      (3.7,4.1), (2.9, 3.7), (8.4, 6.1), (7.1, 6.4)])
yvals = NP.tile( NP.array([5,3]), [10,1] )
fig = PLT.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x, y, "-", lw=3, color='b')
ax1.plot(x, y2, "-", lw=3, color='b')
for a, b in zip(xvals, yvals) : ax1.plot(a,b,'-o',ms=8,mfc='orange', color='g')
PLT.axis("off")
PLT.show()

alt text

这个模型有一些有趣的特征:(i)它实际上处理每个项目的“相似性”(连接点的垂直方向线)而不是聚合相似性; (ii)两个数据点之间的相似程度与连接它们的线的角度成正比 - 如果它们相等则为90度,随着差值的增加角度减小;这非常直观; (iii)第二个数据集中不存在一个数据集中的点的情况很容易显示 - 两条线之一上会出现一个点,但没有一条线将它连接到另一条线上的一个点。

此模型适用于比较搜索结果,因为每个搜索结果都有一个“得分”(其索引或结果列表中的顺序)。对于其他类型的数据,您可能必须为每个数据点分配一个分数 - 我认为可能是相似性度量标准(从某种意义上说,实际上是搜索结果顺序是什么,距离列表顶部的距离)


0
投票

由于在显示两个文件的差异方面做了大量工作,您可以先用适当的文本格式表达“多个数据集”,然后使用任何想要在这些文本格式之间显示差异的内容。

但是你应该告诉我们更多关于你的数据集的信息!


0
投票

我进行了一些实验,并实现了两个显示:


0
投票

我同意Peter的意见,您应该指明您的数据类型以及您希望在比较中提出的内容。

根据数据/比较的性质,您可以考虑不同的可视化。您的数据是订购还是无序?你比较了多少东西,即细粒或粗略比较?

例子:

  • 可视化无序数据的比较可能只是绘制集合的两个直方图(即分布): histogram image source
  • 另一方面,比较像DNA can be done innovatively这样巨大的有序数据集。

另外,查看visual complexity,它是有趣的可视化的一个很好的资源。

© www.soinside.com 2019 - 2024. All rights reserved.