根据类别计数在地图上绘制点的大小

Plotting points on a map with size depending on category count

我有一个包含动物陷阱的数据集,在每个位置我都捕获了几种不同物种的多只动物。我想在地图上绘制此信息,这样每个点都代表给定物种的诱捕位置,每个点的大小代表该物种被困在该位置的动物数量。除了最后一点,我可以做所有这些,根据每个类别和位置的计数来区分点的大小。

数据:

> test
Species  Location      Long      Lat
1  Species1 Location4 13.179328 32.83438
2  Species1 Location4 13.179328 32.83438
3  Species1 Location4 13.179328 32.83438
4  Species1 Location4 13.179328 32.83438
5  Species1 Location4 13.179328 32.83438
6  Species1 Location4 13.179328 32.83438
7  Species1 Location4 13.179328 32.83438
8  Species1 Location4 13.179328 32.83438
9  Species1 Location4 13.179328 32.83438
10 Species1 Location4 13.179328 32.83438
11 Species1 Location4 13.179328 32.83438
12 Species1 Location4 13.179328 32.83438
13 Species1 Location4 13.179328 32.83438
14 Species1 Location4 13.179328 32.83438
15 Species1 Location2 13.857541 32.71680
16 Species1 Location2 13.857541 32.71680
17 Species1 Location2 13.857541 32.71680
18 Species1 Location1  7.584970 33.77976
19 Species1 Location1  7.564263 33.81079
20 Species1 Location1  7.555380 33.79994
21 Species2 Location1  7.542248 33.79943
22 Species2 Location1  7.562118 33.79340
23 Species2 Location1  7.542248 33.79943
24 Species2 Location1  7.555380 33.79994
25 Species2 Location1  7.542248 33.79943
26 Species2 Location3 11.377850 33.20891
27 Species2 Location3 11.377850 33.20891
28 Species2 Location3 11.377850 33.20891
29 Species2 Location3 11.377850 33.20891
30 Species2 Location3 11.377850 33.20891
31 Species1 Location2 13.834581 32.72319
32 Species1 Location2 13.834581 32.72319
33 Species1 Location2 13.834581 32.72319
34 Species1 Location2 13.834581 32.72319
35 Species1 Location2 13.834581 32.72319
36 Species1 Location2 13.834581 32.72319
37 Species1 Location2 13.834581 32.72319
38 Species1 Location2 13.834581 32.72319
39 Species1 Location2 13.834581 32.72319
40 Species1 Location2 13.834581 32.72319
41 Species1 Location2 13.834581 32.72319
42 Species1 Location2 13.834581 32.72319
43 Species1 Location2 13.834581 32.72319
44 Species1 Location2 13.834581 32.72319
45 Species1 Location2 13.834581 32.72319
46 Species1 Location2 13.834581 32.72319
47 Species1 Location2 13.834581 32.72319
48 Species1 Location2 13.834581 32.72319
49 Species1 Location2 13.834581 32.72319
50 Species1 Location2 13.834581 32.72319

> tapply(test$Species,test$Location,length)
Location1 Location2 Location3 Location4 
        8        23         5        14 

标准ggmap图:

m<-get_map(location=c(lon=10.6858397, lat=32.7996318), zoom=7, color="bw")

ggmap(m, extent = "normal") +
  geom_point(aes(x = Long, y = Lat, colour = Species, size = 2), data = test)

我现在如何根据在某个位置捕获的每个物种的动物数量来更改点的大小?

知道了! Easy-peasy 一旦你知道在哪里看 ;-)

继续对象测试:

> library(doBy)
> tdata<-summaryBy(test~Location+Species+Long+Lat, data=test, FUN=length)
> tdata

    Location  Species      Long      Lat test.length
1  Location1 Species1  7.555380 33.79994           1
2  Location1 Species1  7.564263 33.81079           1
3  Location1 Species1  7.584970 33.77976           1
4  Location1 Species2  7.542248 33.79943           3
5  Location1 Species2  7.555380 33.79994           1
6  Location1 Species2  7.562118 33.79340           1
7  Location2 Species1 13.834581 32.72319          20
8  Location2 Species1 13.857541 32.71680           3
9  Location3 Species2 11.377850 33.20891           5
10 Location4 Species1 13.179328 32.83438          14

> ggmap(m, extent = "normal") +
+     geom_point(aes(x = Long, y = Lat, colour = Species, size = test.length), data = data)

非常感谢@MLavoie。