首页 > 解决方案 > 使用 ggplot2 在 R 中绘制空间线

问题描述

我已经对这个主题进行了很多搜索,但还没有找到任何似乎可以解决我的问题的东西。我正在绘制路段并覆盖我拥有的一些雷达数据。下面是我正在做的一个例子。

在此处输入图像描述

我已经用以下内容生成了上面的情节......

map <- get_map(
location = c(-86.34, 39.94),
source = "google", zoom = 13, maptype = "roadmap"
)

lon <- c(-86.355750256169358, -86.357100144855735, -86.359359890246708)
lat <- c(39.949089789262416, 39.950209921850444, 39.952050262109935)
roadDf <- data.frame(lon, lat)

ggmap(map) + geom_tile(data = mrms_sub, aes(x = longitude, y = latitude, fill = palmer)) + 
geom_point(data = mrms_sub, aes(x = longitude, y = latitude)) +
geom_point(data = roadDf, col = "red")

我目前将我的路段显示为 WKT LINESTRING 中的三个点作为可视化它的一种方式,但最终我想将其显示为地图上的线段。我尝试过使用 rgeos readWKT 函数来创建“Formal class SpatialLine”。如果我使用它来绘制它,

plot(roadSegment)

它可以工作,但我不能让它与我的ggplot一起工作。我试过使用 geom_lines 和 geom_segments 但它会引发以下错误。

geom_segment(roadSegment, aes(x=longitude, y=latitude))
#Error: ggplot2 doesn't know how to deal with data of class uneval

geom_line(line, aes(x=longitude, y=latitude))
#Error: Mapping must be created by `aes()` or `aes_()`

我的线串如下是这样读入的......

#define roads
road1 <-("LINESTRING(-86.355750256169358 39.949089789262416, -86.357100144855735 39.950209921850444, -86.359359890246708 39.952050262109935)")
roadSegment <- rgeos::readWKT(road1)

任何帮助将不胜感激!

标签: rggplot2

解决方案


推荐阅读