(загрузка библиотек)
library(tidyverse)
library(sf)
Допустим, у нас есть две точки в одной позиции (x, y), но с разными значениями (z):
x<-c(1,1)
y<-c(1,1)
z<-c(0,1)
Я знаю эта точка geom_point изменит порядок отображаемых значений (который находится сверху) на основе порядка набора данных:
ggplot(data=points, aes(x=x,y=y))+geom_point(aes(color=z),size=20)
ggplot(data=points%>%arrange(desc(z)), aes(x=x,y=y))+geom_point(aes(color=z),size=20)
порядок 1 порядок 2
И это все еще работает, если "z" является фактором.
Если я делаю точки в объекты sf и строю их с помощью geom_sf, это работает, если "z" это число c.
ggplot(data=points%>%st_as_sf(x=.,coords=c("x","y"),crs=4326) )+geom_sf(aes(color=z),size=20)
ggplot(data=points%>%st_as_sf(x=.,coords=c("x","y"),crs=4326) %>%arrange(desc(z)))+geom_sf(aes(color=z),size=20)
sf num order 1 sf num order 2
Однако, используя geom_sf с factor (z), ничего не меняется при переупорядочении набор данных.
ggplot(data=points%>%st_as_sf(x=.,coords=c("x","y"),crs=4326) %>%mutate(z=factor(z)))+geom_sf(aes(color=z),size=20)
ggplot(data=points%>%st_as_sf(x=.,coords=c("x","y"),crs=4326) %>%mutate(z=factor(z))%>%
arrange(desc(z)))+geom_sf(aes(color=z),size=20)
sf-коэффициент порядка 1 sf-коэффициент порядка 2
Как я могу принудительно изменить порядок в последнем примере?
Большое спасибо!