data.frame到空间多边形数据框

时间:2018-02-21 13:51:33

标签: rstudio visualization polygon spatial polygons

我有这个data.frame

data <- read.table(text="Id            x             y valecolo valecono
1     1  12.18255221  29.406365240        4      990
2     2   9.05893970  20.923087170        4     1090
3     3   1.11192442   2.460411416        0      420
4     4  15.51290096  27.185287490       16     1320
5     5  20.41913438  32.166268590       13     1050
6     6  12.75939095  17.552435030       60     1010
7     7  28.06853355  30.839057830       12     1030
8     8   6.96288868   7.177616682       33     1010
9     9  30.60527190  20.792242110       23      640
10   10  12.07646283   7.658266843       19      810
11   11  10.42878294   5.520913954        0      700
12   12  23.61674977  11.111217320        0      838
13   13  27.16148898  12.259423750       11     1330
14   14  28.00931750   6.258448426       20      777
15   15  20.79999922  -0.000877298        4      630
16   16  21.59999968  -0.005502197       38      830
17   17  19.46122172  -1.229166015        7      740
18   18  28.20370719  -6.305622777       12      660
19   19  29.94840042  -7.192584050        0     1030
20   20  29.28601258 -12.133404940       10      870
21   21   5.88104817  -3.608777319        0     1050
22   22  30.37845976 -26.784308510        0      900
23   23  13.68270042 -12.451253320        0      300
24   24  26.01871530 -26.024342420       22     1330
25   25  20.17735764 -20.829648070       21     1190
26   26   5.04404016  -5.550464740        7     1030
27   27  17.98312114 -26.468988540        0     1200
28   28   8.50660753 -12.957145840        9      850
29   29  10.79633248 -18.938827100       36     1200
30   30  13.36599497 -28.413203870        7     1240
31   31  10.77987946 -28.531459810        0      350
32   32   8.35194396 -24.410755680       28      910
33   33   1.55014408 -12.302725060       10      980
34   34  -0.00388992 -17.899999200       12     1120
35   35  -2.82062504 -16.155620130       12      450
36   36  -4.75903628 -22.962014490       20      920
37   37  -6.07839546 -15.339592840       28      840
38   38 -11.32647798 -24.068047630        0      665
39   39 -11.88138209 -24.245262620       12     1180
40   40 -14.06823800 -25.587589260       36      350
41   41 -10.92180227 -18.461223360        7     1180
42   42 -12.48843186 -20.377660600        0      400
43   43 -18.63696964 -27.415068190       18     1220
44   44 -16.73351789 -23.807549250        0      500
45   45 -22.49024869 -29.944803740        7     1040
46   46 -22.66130064 -27.391018580        0      500
47   47 -15.26565038 -17.866446720       16     1060
48   48 -24.20192852 -23.451155780        0      600
49   49 -21.39663774 -20.089958090        0      750
50   50 -12.33344998  -9.875526199       16      980
51   51 -30.94772590 -22.478895910        0      790
52   52 -24.85783868 -15.225318840       25      720
53   53  -2.44485324  -1.145728097       54      970
54   54 -24.67985433  -7.169018707        4      500
55   55 -30.82457650  -7.398346555        4      750
56   56 -23.56898920  -5.265475270        4      760
57   57  -3.91708603  -0.810208045        0      350
58   58 -26.86563675  -4.251776497        0      440
59   59 -26.64738877  -1.675324623        8      450
60   60  -8.79897138  -0.134558536       11      830
61   61 -21.78250663   1.716077388        0      920
62   62 -28.98396759   6.007465815       24      980
63   63 -34.61607994   8.311853049        8      500
64   64 -25.63850107   7.453677191       15      880
65   65 -22.98762116  11.266290120       11      830
66   66 -33.48522130  19.100848030        0      350
67   67 -25.53096486  16.777135830       21      740
68   68 -18.95412327  15.681238150        0      300
69   69  -8.94874230   8.144324435        0      500
70   70 -10.91433241  10.579099310        4      750
71   71 -13.44807236  14.327310800        0     1090
72   72 -16.24086139  20.940019610        0      500
73   73 -17.51162097  24.111886810        0      940
74   74 -12.47496424  18.363422910        0     1020
75   75 -17.76118016  27.990410510        0      660
76   76  -5.54534556   9.730834410        0      850
77   77 -11.30971858  29.934766840        0      950
78   78 -10.38743785  27.493148220        0      740
79   79  -8.61491396  25.166312360        0      950
80   80  -3.40550077  14.197273530        0      710
81   81  -0.77957621   3.770246702        0      750
82   82  -3.01234325  21.186924550        0     1200
83   83  -2.05241931  32.685624900        0     1200
84   84  -2.26900366  36.128820600        0      970
85   85   0.82954518   5.790885396        0      850
86   86  22.08151130  19.671119440       19      870
87   87  12.60107972  23.864904860        0     1260
88   88   9.78406607  26.163968270        0      600
89   89  11.69995152  33.091322170        0     1090
90   90  20.64705880 -16.439632140        0      840
91   91  24.68314851 -21.314655730        0     1561
92   92  30.33133300 -27.235396100        0     1117
93   93 -26.24691654 -22.405635470        0     1040
94   94 -21.68016500 -24.458519270       10     1000
95   95  -1.57455856 -30.874986140        0      500
96   96 -29.75642086  -5.610894981        0      350
97   97  -3.66771076  26.448084810        0      900
98   98 -26.54457307  29.824419350        0     1050
99   99 -17.90426678  18.751297440        0      200
100 100  10.22894253  -6.274450952        0      880")

我想用thiessen的多边形创建一个可视化,然后根据它们的“valecono”值着色多边形。

我试过了:

> library(deldir)
> z <- deldir(x,y,rw=c(-34.51608,30.7052719,-30.774986,36.2288206))
> w <- tile.list(z)
> plot(w, fillcol=data$valecono, close=TRUE)

这对我来说似乎很奇怪,我不确定R是如何归因于这些颜色的。

您对此案有任何其他建议吗?

我还尝试在SpatialPolygonsDataFrame中转换我的data.frame,这是我没有管理的。我试图将我的data.frame转换为SpatialPointsDataFrame,这不是问题,但不是很有用,因为我没有找到如何将其转换为SpatialPointsDataFrame。

spdf <- SpatialPointsDataFrame(coords = coords, data = data,
                               proj4string = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))

我尝试了这一切,因为我认为使用SpatialPointsDataFrame,根据点的valecono,可以更容易地使用颜色显示多边形。

1 个答案:

答案 0 :(得分:0)

你可以做到

library(dismo)
coordinates(data) <- ~x + y
v <- voronoi(data) 
spplot(v, "valecolo")

基础情节

s <- (floor(sort(v$valecono)/400) + 1)
plot(v, col=rainbow(60)[v$valecolo+1])
points(data, cex=s/2, col=gray((1:4)/4)[s])