【发布时间】:2013-02-12 13:06:45
【问题描述】:
> d
[,1] [,2]
1 -0.5561835 1.49947588
2 -2.3985544 3.07130217
3 -3.8833659 -4.29331711
4 3.1025836 5.45359160
5 0.7438354 -2.80116065
6 7.0787294 -2.78121213
7 -1.6633598 -1.17898157
8 -0.6751930 0.03466162
9 1.4633841 0.50173157
10 -3.2118758 0.49390863
上表给出了我想要绘制的绘图的 x(第 1 列)和 y(第 2 列)坐标。
require(MASS) # for sammon using which i generated the above coordinates
require(deldir) # for voronoi tessellations
dd <- deldir(d[,1], d[,2]) # voronoi tessellations
plot(dd,wlines="tess") # This will give me tessellations
我希望在上述细分中的一个区域中绘制我的下一个细分。我可以使用 dd$dirsgs 获得形成镶嵌的线条。在此,镶嵌中的每条线都给出了它们的端点。前四列分别给出 x1,y1 和 x2,y2 坐标。这些坐标是线的端点。使用这些数据,我可以在上述细分中的这一区域内绘制下一个子细分。
对于下一个子细分,您可以生成您选择的坐标。但我只希望它们位于上述曲面细分的一个区域中。
dd$dirsgs 中的 ind 1 和 ind2 给出了 'd' 中的点,它们由 dd$dirsgs 的前 4 列表示的线分隔。
例如,如果我们要在包含 d 中的第一个点的图中绘制子曲面细分,那么第 1、2、9、12、17 行是形成 d 中第一个点的边界的行.使用这些信息,我们可以绘制该区域内的子细分吗? ——
我想我已经涵盖了理解我的问题所必需的所有内容。如果还有我没有包含的更多数据,请告诉我。我会提供信息。
【问题讨论】:
-
我认为答案在于将边界传递到 mar 字段。 mar= c(-10,-10,10,10) 在两个轴上创建一个介于 -10 和 10 之间的区域。因此,如果我们可以传递坐标函数,例如c(3-y,4-x,6+x,2+y),它可以在 x+y=3、x+y=4、y-x=6 和 x-y=2 行之间产生一个界限。
-
par 函数的 mar 参数给出了一个矩形作为边界,但在上面的镶嵌中,我可以有 5 条或更多条线形成特定区域的边界。我还使用了“TeachingDemos”包的“子图”功能,但在我的情况下无法应用。你也可以试试“subplot”,看看你们有没有发现
-
您是否尝试过使用少于 4 个变量的 mar?我相信它可能会持续到无穷大。如果发生这种情况,那么它也可能会接受更多。试一试!
标签: r plot voronoi tessellation