我正在使用ggmap,并得到以下错误:
Error: GeomRasterAnn was built with an incompatible version of ggproto.
Please reinstall the package that provides this extension.
Run Code Online (Sandbox Code Playgroud)
我已经安装了ggmap(2.6.1)和ggplot2(2.2.0)的最新版本,但仍然遇到了同样的错误.
我试图用R绘制我的坐标.我已经尝试过跟随不同的帖子(R:在世界地图上绘制分组坐标 ; 在R中的谷歌地图绘制多个点的坐标)但我的数据并没有太大成功.
我正在尝试使用我的gps坐标作为彩色圆点(每个区域为特定颜色)来获得世界的平面地图:
area lat long
Agullhas -38,31 40,96
Polar -57,59 76,51
Tasmanian -39,47 108,93
library(RgoogleMaps)
lat <- c(-38.31, -35.50) #define our map's ylim
lon <- c(40.96,37.50) #define our map's xlim
center = c(mean(lat), mean(lon)) #tell what point to center on
zoom <- 2 #zoom: 1 = furthest out (entire globe), larger numbers = closer in
terrmap <- GetMap(center=center, zoom=zoom, maptype= "satallite", destfile = "satallite.png")
Run Code Online (Sandbox Code Playgroud)
问题,现在我不知道如何添加我的点,我想为每个区域一种颜色.
谁能帮助我继续前进呢?
我尝试过的另一个选择是:
library(maps)
library(mapdata)
library(maptools)
map(database= "world", ylim=c(-38.31, -35.5), xlim=c(40.96, 37.5), …Run Code Online (Sandbox Code Playgroud) 注意:这个问题是专门用于映射的,但是当我在标准的笛卡尔坐标系中绘图时,我希望能够使用它.
我喜欢基本图形,但也喜欢ggplot2.用于微调图形的我最常用的基本函数之一是locator(n),但这会在ggplot2中产生错误.
library(ggplot2)
county_df <- map_data('county') #mappings of counties by state
ny <- subset(county_df, region=="new york") #subset just for NYS
ny$county <- ny$subregion
ggplot(ny, aes(long, lat, group=group)) + geom_polygon(colour='black', fill=NA)
locator(1)
Run Code Online (Sandbox Code Playgroud)
现在,grid.locator()作为talkstats.com向我指出的达诚(这里),可以返回一些东西.我只是不知道如何使用那些东西来获得地图坐标.
> grid.locator()
$x
[1] 286native
$y
[1] 133native
Run Code Online (Sandbox Code Playgroud)
单位似乎没有帮助,因为它们不是地图坐标.也许我需要某种转换.
先感谢您.
编辑:(基于DWin的回复)
Dwin有正确的想法,但转换因素有点偏.对此的帮助将不胜感激.在下面的示例中,我在坐标处有一个红点(x = -73&y = 40.855).我把Dwin的响应扔进了一个函数来返回坐标.我希望结果是我输入的坐标,但它们不是.
想法?
require(maps); library(ggplot2); require(grid)
county_df <- map_data('county') #mappings of counties by state
ny <- subset(county_df, region=="new york") #subset just for NYS
ny$county <- ny$subregion
NY <- ggplot(ny, aes(long, …Run Code Online (Sandbox Code Playgroud) 大约90%的时间,在使用get_map时ggmap,我收到以下错误.有人可以告诉我为什么吗?
map <- get_map(location = 'Australia', zoom = 4)
Run Code Online (Sandbox Code Playgroud)
在download.file错误(!URL,destfile = destfile,安静=短信,模式= "WB"):无法打开URL" http://maps.googleapis.com/maps/api/staticmap?center=Australia&zoom=4&size= %20640x640&scale =%202&maptype = terrain&sensor = false '另外:警告消息:在download.file(url,destfile = destfile,quiet =!messaging,mode ="wb"):无法打开:HTTP状态为'403 Forbidden'
我正在使用ggmap并希望有一个以澳大利亚为中心的世界地图,我可以轻松地绘制地理编码点.与其他一些映射包相比,ggmap似乎更容易使用.然而,当我使用下面的代码通过地图时,它会出错.
gc <- geocode('australia')
center <- as.numeric(gc)
> map <- get_map(location = center, source="google", maptype="terrain", zoom=0)
Error: zoom must be a whole number between 1 and 21
Run Code Online (Sandbox Code Playgroud)
从get_map帮助:"缩放:地图缩放,从0(全世界)到21(建筑物)的整数,默认值10(城市).openstreetmaps限制缩放18,雄蕊地图的限制取决于地图类型. 'auto'自动确定边界框规格的缩放,默认为中心/缩放规格为10."
将缩放更改为1对于get_map而言不是错误,而是用于绘制该地图
map <- get_map(location = center, source="google", maptype="terrain", zoom=1)
ggmap(map)
Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : …Run Code Online (Sandbox Code Playgroud) 我正在玩空间数据集(主要是城市某个区域的多边形),我想根据不同的缩放级别生成不同的视图.当我的绘图边界框大于包含多边形的区域时,一切都很好.但是在放大时,一些多边形会获得位于边界框外部的部分,并且这些多边形的输出会出现问题:边界框外部的多边形点不会显示,从而导致多边形未在边界框限制处被裁剪(正如预期的那样)但不考虑.多边形不完整,多边形只连接图上剩余的点(正常行为,但不是必需的).
一个值得所有讨论的好例子,这是一个问题的演示:
#initialisation
library(ggmap)
require(MASS)
data(zips)
# overview
ggmap(get_map(maptype = "satellite", zoom = 8), extent = "device") +
geom_polygon(aes(x = lon, y = lat, group = plotOrder),
data = zips, colour = NA, fill = "red", alpha = .5) +
geom_path(aes(x = lon, y = lat, group = plotOrder),
data = zips, colour = "white", alpha = .7, size = .4)
# problematic view
x11()
ggmap(get_map(maptype = "satellite", zoom = 12), extent = "device") +
geom_polygon(aes(x = lon, y = …Run Code Online (Sandbox Code Playgroud) 我想要一个带有点(和其他geom_*层)的地图.我得到了地图,但是我得到的所有点都是警告:
Message d'avis :
Removed 3 rows containing missing values (geom_point).
Run Code Online (Sandbox Code Playgroud)
这是一个可重现的例子:
library(ggmap)
library(ggplot2)
d <- data.frame(lat=c(50.659631, 50.607213, 50.608129),
lon=c(3.09319, 3.011473, 3.031529))
Lille <- get_map("Lille,France", zoom=12)
p <- ggmap(Lille)
p <- p + geom_point(data=d, aes(lat, lon))
p
Run Code Online (Sandbox Code Playgroud)
看着输出
ggplot_build(p)
Run Code Online (Sandbox Code Playgroud)
我看到一个带有用于x和y的NA的图层,但我不明白为什么不考虑来自d的数据.
当使用ggplot()而不是ggmap()时,我确实得到了积分.但我确实也需要地图:)
那么,我怎样才能获得带有积分的地图呢?
谢谢
我可以使用以下代码制作美国州级失业率图表.
library(XML)
library(ggplot2)
library(plyr)
library(maps)
unemp <-
readHTMLTable('http://www.bls.gov/web/laus/laumstrk.htm',
colClasses = c('character', 'character', 'numeric'))[[2]]
names(unemp) <- c('rank', 'region', 'rate')
unemp$region <- tolower(unemp$region)
us_state_map <- map_data('state')
map_data <- merge(unemp, us_state_map, by = 'region')
map_data <- arrange(map_data, order)
states <- data.frame(state.center, state.abb)
p1 <- ggplot(data = map_data, aes(x = long, y = lat, group = group))
p1 <- p1 + geom_polygon(aes(fill = cut_number(rate, 5)))
p1 <- p1 + geom_path(colour = 'gray', linestyle = 2)
p1 <- p1 + scale_fill_brewer('Unemployment Rate (Jan 2011)', palette …Run Code Online (Sandbox Code Playgroud) 我想从R获得带有RgoogleMaps的地图,具有特定的坐标边界.
我可以调用的是GetMap,并指定一个中心,我必须添加一个缩放级别.一切都很好,除了我没有得到一个与我选择的坐标有界的图像地图.
这是一个例子:
lat <- c(44.49,44.5)
lon <- c(11.33,11.36)
center = c(mean(lat), mean(lon))
zoom <- 14
mmap <- GetMap(center = center, zoom=zoom, maptype= "satellite", destfile = "m.png")
Run Code Online (Sandbox Code Playgroud)
问题是只有中心作为参数传递,因此我看到的整个图像取决于缩放级别.所以,我无法理解我得到的图像的边界是什么.我想要做的是使用我定义的坐标精确限制图像.这是可能的(还有其他地图包)吗?
我试图用两个表示形状和颜色的图例来制作地图(下面的例子中为"Type"和"Org"),并且有图例插图.我可以放置传说,但我希望它们左对齐,以便它们的左边缘对齐.除了相互集中之外,我无法做出任何其他事情:
require(ggplot2)
require(ggmap)
require(grid)
require(mapproj)
data <- data.frame(Org=rep(c("ABCDEFG","HIJKLMNOP","QRSTUVWX"),4)
, Type=rep(c("Y","Z"),6), Lat=runif(12,48,54.5)
, Long=runif(12,-133.5,-122.5))
osmMap <- get_map(location=c(-134,47.5,-122,55), source = 'osm')
points <- geom_jitter(data=data, aes(Long, Lat, shape=Type
, colour=Org))
legend <- theme(legend.justification=c(0,0), legend.position=c(0,0)
, legend.margin=unit(0,"lines"), legend.box="vertical"
, legend.key.size=unit(1,"lines"), legend.text.align=0
, legend.title.align=0)
ggmap(osmMap) + points + legend
Run Code Online (Sandbox Code Playgroud)

ggmap ×10
r ×10
ggplot2 ×8
google-maps ×2
coordinates ×1
ggproto ×1
maps ×1
polygon ×1
r-grid ×1
rgooglemaps ×1