R ggmap和使用注释时出错(geom=";text";)
我的数据框显示了普林斯顿不同地点的流量R ggmap和使用注释时出错(geom=";text";),r,ggplot2,ggmap,annotate,R,Ggplot2,Ggmap,Annotate,我的数据框显示了普林斯顿不同地点的流量 # dput(count) structure(list(intersection = structure(c(11L, 9L, 10L, 12L, 6L, 3L, 7L, 2L, 4L, 1L, 5L, 8L), .Label = c("CherryHillat206", "ElmatRidgeRd", "FacultyatHarrison", "HarrisonatLake", "HarrisonbetwHamilton", "MerceratL
# dput(count)
structure(list(intersection = structure(c(11L, 9L, 10L, 12L,
6L, 3L, 7L, 2L, 4L, 1L, 5L, 8L), .Label = c("CherryHillat206",
"ElmatRidgeRd", "FacultyatHarrison", "HarrisonatLake", "HarrisonbetwHamilton",
"MerceratLoversLane", "ProvinceLineatMercer", "RiverRdat27",
"Rt 27 Bank", "Rt. 27 River Rd", "US206 Cambelton", "US206Princeton Ave."
), class = "factor"), traffic = c(19352, 18697, 12493, 21554,
10871, 13310, 7283, 11408, 12055, 6415, 14100, 5739), lat = c(40.3475418,
40.3487282, 40.3711205, 40.3909988, 40.3403702, 40.3434601, 40.343689,
40.3440514, 40.3454819, 40.3627014, 40.3658734, 40.3738098),
lon = c(-74.6711197, -74.6630707, -74.62323, -74.6541214,
-74.6720123, -74.647049, -74.7051392, -74.7334671, -74.6390533,
-74.6648483, -74.6596518, -74.6207962), class = structure(c(1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("primary",
"secondary"), class = "factor")), .Names = c("intersection",
"traffic", "lat", "lon", "class"), row.names = c(NA, -12L), class = "data.frame")
library(ggplot2)
library(ggmap)
map <- get_map(location = 'princeton', zoom = 13, maptype = "road")
ggmap(map) +
geom_point(data = count, aes(x = lon, y = lat)) +
annotate("text", x = -74.7, y = 40.4, label = "TEST anno")
图中显示了轴上的边界
在研究了这个案例之后,我认为
错误:“x”和“units”的长度必须大于0
表示注释点在地图中不存在
str(map)
# chr [1:1280, 1:1280] "#F0EDE4" "#F0EDE4" "#F0EDE4" "#F0EDE4" ...
# - attr(*, "class")= chr [1:2] "ggmap" "raster"
# - attr(*, "bb")='data.frame': 1 obs. of 4 variables:
# ..$ ll.lat: num 40.3
# ..$ ll.lon: num -74.7
# ..$ ur.lat: num 40.4
# ..$ ur.lon: num -74.6
如果您查看上面的lon和lat值,-74.7和40.4是bbox的值。但是,看到错误消息后,可能不包括bbox值。如果是这样,并且希望注释点位于x=-74.7,y=40.4,则需要另一种方法。我的方法是使用较小的缩放值(例如,zoom=12)获取地图,并使用scale\u x\u continuous
和scale\u y\u continuous
修剪地图。通过这种方式,我确保注释点保持在地图中。顺便说一下,下面的地图缺少一个数据点。如果你想让它出现在地图上,你需要使用lon/lat值
map2 <- get_map(location = 'princeton', zoom = 12, maptype = "road")
ggmap(map2) +
geom_point(data = mydf, aes(x = lon, y = lat)) +
annotate("text", x = -74.7, y = 40.4, label = "TEST anno") +
scale_x_continuous(limits = c(-74.71, -74.6)) +
scale_y_continuous(limits = c(40.3, 40.4))
map2您是否收到此错误:error:ggplot2不知道如何处理类函数的数据
@rmuc8:no,我收到错误:“x”和“units”的长度必须大于0使用您的数据c&p,我收到上面发布的错误。但是,您可能希望在帖子中包含错误消息。我认为数据的名称是导致错误的原因:ggplot2不知道如何处理类函数的数据<代码>计数
是plyr/dplyr中的一个函数。将数据名称更改为mydf后,出现了错误:“x”和“units”的长度必须大于0
。如果缩放值较小,我想您会看到文本<代码>地图2
map2 <- get_map(location = 'princeton', zoom = 12, maptype = "road")
ggmap(map2) +
geom_point(data = mydf, aes(x = lon, y = lat)) +
annotate("text", x = -74.7, y = 40.4, label = "TEST anno") +
scale_x_continuous(limits = c(-74.71, -74.6)) +
scale_y_continuous(limits = c(40.3, 40.4))