1

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

但是是否有任何可视化范式来显示多个数据集之间的差异?

更新

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

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

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

例子:

第一组: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)

4

4 回答 4

1

我与一些提供答案的人有不同的看法——即,您需要进一步说明问题。抽象级别大约是正确的。进一步的规范将使问题更容易,但解决方案的用处不大。

几年前,我在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()

替代文字

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

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

于 2010-01-13T20:16:22.147 回答
0

I agree with Peter, you should specify what type your data is and what you wish to bring out in the comparison.

Depending on the nature of the data/comparison you can consider different visualisations. Is your data ordered or unordered? How many things are you comparing, i.e. fine grain or gross comparison?

Examples:

  • Visualizing a comparison of unordered data could just be plotting the two histograms of your sets (i.e. distributions):

    histogram

    image source

  • On the other hand, comparing a huge ordered dataset like DNA can be done innovatively.

Also, check out visual complexity, it's a great resource for interesting visualization.

于 2009-09-15T23:47:51.280 回答
0

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

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

于 2009-09-15T06:32:09.803 回答
0

我做了一些实验,实现了两个显示:

于 2009-10-08T10:36:00.180 回答