我有许多坐标,我想通过使用R在网格界面中绘制它们。 问题是观察之间的相对距离很大。坐标位于地理坐标系中,研究区域为瑞士。此外,需要绘制点的id。
问题在于两个点的集群是密集的,而一些其他点是以很大的距离分开的。我如何以适当的方式绘制它们以具有可读的表示?有关绘制数据的建议吗?
最好不要使用之前使用过的ggplot
,但是没有出现正确的结果。
数据:
id x y
2 7.1735 45.86880001
3 7.17254 45.86887001
4 7.171636 45.86923601
5 7.18018 45.87158001
6 7.17807 45.87014001
7 7.177229 45.86923001
8 7.17524 45.86808001
9 7.181409 45.87177001
10 7.179299 45.87020001
11 7.178359 45.87070001
12 7.175189 45.86974001
13 7.179379 45.87081001
14 7.175509 45.86932001
15 7.176839 45.86939001
17 7.18099 45.87262001
18 7.18015 45.87248001
19 7.18122 45.87355001
20 7.17491 45.86922001
25 7.15497 45.87058001
28 7.153399 45.86954001
29 7.152649 45.86992001
31 7.154419 45.87004001
32 7.156099 45.86983001
GSBi_1 7.184 45.896
GSBi__1 7.36 45.901
GSBj__1 7.268 45.961
GSBj_1 7.276 45.836
GSB 7.272 45.899
GSB_r 7.166667 45.866667
积分的位置:
正如您在图中所看到的,对于密集部分和其他部分,点'ID都不可读。
答案 0 :(得分:0)
实际上,当绘制一组同时包含非常接近和非常远点的点时,并不总是能够确保所有点在屏幕上在视觉上可分离。
想象一下1000x800像素的屏幕。假设我们有三个点A,B和C分别位于同一水平线上,这样:A和B之间的距离是1个单位,A和C之间的距离是4000个单位。
如果将此最大距离(4000单位)映射到屏幕宽度(1000px)。然后像素将对应于水平的4个单位。这意味着A和B将适合一个像素,因为它们之间的距离仅为1个单位。因此,它们在屏幕上不会在视觉上分离。
答案 1 :(得分:0)
你的观点太过接近,实在太过分了,但想法可能是来自plotrix的spread.labels
:
opar <- par()
par(xpd=TRUE)
plot(dat$x, dat$y)
spread.labels(dat$x,dat$y,dat$id)
par(opar)
您可能需要考虑省略所有数字标签并将它们放在不同的图表中。