Изменить порядок граней при построении карт geom_polygon - PullRequest
0 голосов
/ 11 марта 2019

Я рассчитал домашний диапазон моих животных, используя пакет adehabitatHR, в пространственные полигоны. В то время как я создавал полигоны домашнего диапазона для каждого отдельного животного, я «укреплял» SpatialPolygonDataframe и помещал все 3 полигона на животное в один фрейм данных, «укреплял» и объединял их для всех животных (11 из них) в один фрейм данных.

str(f_kuds)
'data.frame':   1832 obs. of  11 variables:
 $ X      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Fish_ID: int  34931 34931 34931 34931 34931 34931 34931 34931 34931 34931 ...
 $ id     : Factor w/ 2 levels "a","homerange": 2 2 2 2 2 2 2 2 2 2 ...
 $ long   : num  290572 290570 290566 290572 290587 ...
 $ lat    : num  2028966 2028970 2028992 2029003 2029015 ...
 $ order  : int  1 2 3 4 5 6 7 8 9 10 ...
 $ hole   : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ piece  : int  1 1 1 1 1 1 1 1 1 1 ...
 $ group  : Factor w/ 4 levels "a.1","homerange.1",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ value  : Factor w/ 3 levels "KUD 50%","KUD 95%",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ fname  : int  34931 34931 34931 34931 34931 34931 34931 34931 34931 34931 ...

Теперь я использовал этот фрейм данных, содержащий пространственные полигоны, чтобы создать карту с различными полигонами (50% KUD, 95% и 100% MCP) на одном графике, состоящем из 11 граней (по 1 на животное). Однако, когда я изменяю порядок смещения идентификаторов животных на рисунке, полигоны искажаются в цветах (см. Рисунок ниже). Есть ли способ убедиться, что полигоны не искажаются, и я могу изменить порядок, в котором мои животные должны отображаться на рисунке?

level_order<-factor(f_kuds$value, level=c("MCP 100%", "KUD 95%", "KUD 50%"))
cols <- c("MCP 100%" = "turquoise1", "KUD 95%" = "royalblue",  "KUD 50%" = "yellow")
#To change order of animal by ID
f_kuds$fish_order= factor(f_kuds$Fish_ID, levels = c("34936", "45239", "45293", "45290", "45291", "45326", "34933", "34935", "45289", "34931", "45286"))

plot_kuds_f<-ggplot()+
  geom_polygon(data=LandMask_pc, aes(x=long, y=lat), fill="darkgrey")+ #Background Polygon of study site
  geom_polygon(data=f_kuds, aes(x=long, y=lat, fill=level_order))+
  scale_fill_manual(values = cols)+
  #facet_wrap(~fname)+
  facet_wrap(~fish_order, ncol=3, nrow = 4)+
  labs(x="", y="")+
  cowplot::background_grid(major = "none", minor="none")+
  #guides(color=guide_legend("Fish ID")) +  #change title of legend. or below remove it
  theme(legend.title = element_blank(),
        axis.text.x = element_blank(), axis.ticks.x = element_blank(), 
        axis.text.y = element_blank(), axis.ticks.y = element_blank(),
        axis.line = element_blank())
plot_kuds_f

Output of plot_kuds_f figure with distorted colors of polygons

...