2014-09-20 103 views
0

我在一篇论文中发现了这一点,并一直试图做同样的事情。目标是将所有工作站连接到线上,然后指出线密度高或低的区域。根据线密度生成图像

注:红色圆点表示站

是否有软件,该软件能做到这一点? 我在Maltab试过这个,但是结果对于3个以上的站点是不正确的。

+1

你在matlab中做过什么?显示代码,否则我们可能无法为你提供帮助 – ASantosRibeiro 2014-09-20 20:01:31

回答

0

在第一部分,你要寻找的功能是gplot:http://www.mathworks.com/help/matlab/ref/gplot.html (你可以看到一个asnwer到类似的问题here)。

这个想法是:如果你有一个n个点的列表,你需要一个n-by-2矩阵来定义每个点的坐标,另一个矩阵定义哪个节点应该被链接。例如:

A=[0 1 1;1 0 0;1 0 0]; 
c=[1 1; 2 2; 3 1]; 
gplot(A,c) 

对于第二个图,我不太熟悉的:我通常看到的是人们使用类似第一张图用更少的粗线和更多的空间,这样你就可以得到密度,同时的感觉实际上能够看到它存在的原因(例如,链接到许多其他节点)。如果你想绘制类似于第二个图形的东西,那么它不是一个Matlab编码问题,而是更多关于哪个函数产生“密度”的问题。完成之后,您可以使用countour。您需要一个函数,对于每个(x,y)坐标,计算到所有线的距离并以参数化方式聚合此向量(例如,给定向量d,对于某些常数Z,您可以使用sum(exp(-Z*d))或尝试不同的函数)。还要注意的是,从你所显示的图表来看,如果存在这样的情况,密度也可能由每个链接的“强度”加权。

+0

第一部分对应于我已有的数据类型。我更关心第二部分。 – shrey 2014-09-20 23:46:45

+0

论文是否可以说出图表是如何绘制的,可能在(在线)附录中?通过这个,我的意思不一定是他们使用的代码/工具,但也许是如何计算密度函数的解释。 正如上面提到的其他评论,知道你的代码会有帮助(就是一个小例子,它显示了你在Matlab中要做的事情)。 – 2014-09-21 16:36:23