我目前正在這個
但是當我使用ggplot2andggspatial包時,speed_limit plot中添加了第4行,我真的不知道為什么。
sp_df <- ggspatial::df_spatial(line_sf)
p1 <- ggplot2::ggplot(sp_df, aes(x,y))
ggspatial::geom_spatial_path(aes(colour = road_name))
ggspatial::coord_sf(crs = 4326)
xlab("lon")
ylab("lat")
ggtitle("road_name")
p2 <- ggplot2::ggplot(sp_df, aes(x,y))
ggspatial::geom_spatial_path(aes(color = speed_limit))
ggspatial::coord_sf(crs = 4326)
xlab("lon")
ylab("lat")
ggtitle("speed_limit")
p1 / p2

這里有什么問題?那條額外的線是從哪里來的?我做錯了什么還是這是一個錯誤?任何幫助表示贊賞。
uj5u.com熱心網友回復:
sf由于 ggplot 有很好的支持,你似乎在做事很艱難。與其加載額外的依賴項、使用額外的代碼并轉換為資料框,不如直接繪制sf物件?
p1 <- ggplot(line_sf)
geom_sf(aes(geometry = line_sfc, color = road_name))
labs(title = "road_name", x = "lon", y = "lat")
p2 <- ggplot(line_sf)
geom_sf(aes(geometry = line_sfc, color = speed_limit))
labs(title = "speed_limit", x = "lon", y = "lat")
p1 / p2

如果您有充分的理由轉換為資料框,另一種方法是按道路名稱對第二個圖進行分組,以便相鄰組不連接:
sp_df <- ggspatial::df_spatial(line_sf)
p1 <- ggplot2::ggplot(sp_df, aes(x,y))
ggspatial::geom_spatial_path(aes(colour = road_name))
ggspatial::coord_sf(crs = 4326)
xlab("lon")
ylab("lat")
ggtitle("road_name")
ggplot2::ggplot(sp_df, aes(x,y))
ggspatial::geom_spatial_path(aes(color = speed_limit, group = road_name))
ggspatial::coord_sf(crs = 4326)
xlab("lon")
ylab("lat")
ggtitle("speed_limit")
p1 / p2

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529691.html
下一篇:R中的第二軸,反映百分位數
