- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 ggmap,希望有一张以澳大利亚为中心的世界地图,我可以轻松地绘制地理编码点。与其他一些 map 包相比,ggmap 似乎更容易使用。然而,当我使用下面的代码浏览 map 时,它会出错。
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
来自 get_map 帮助:"zoom: map 缩放,从0(全世界)到21(建筑物)的整数,默认值10(城市)。openstreetmaps限制缩放为18,花蕊 map 的限制取决于 map 类型。‘auto’自动确定边界框规范的缩放,并且中心/缩放规范默认为 10。”
将缩放更改为 1 对于 get_map 不会出错,但对于绘制该 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) : no non-missing arguments to max; returning -Inf
看起来经度没有被拉过。最后,缩放为 2 时,它确实可以工作,但无法显示整个世界的 map
所以,我的问题是如何使用 get_map 来获取世界地图?
session 信息:
sessionInfo() R version 2.15.0 (2012-03-30) Platform: i386-pc-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] mapproj_1.1-8.3 maps_2.2-6 rgdal_0.7-12 sp_0.9-99
[5] ggmap_2.1 ggplot2_0.9.1
loaded via a namespace (and not attached):
[1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2 grid_2.15.0
[5] labeling_0.1 lattice_0.20-6 MASS_7.3-17 memoise_0.1
[9] munsell_0.3 plyr_1.7.1 png_0.1-4 proto_0.3-9.2
[13] RColorBrewer_1.0-5 reshape2_1.2.1 RgoogleMaps_1.2.0 rjson_0.2.8
[17] scales_0.2.1 stringr_0.6 tools_2.15.0
最佳答案
编辑:更新至 ggplot2 v 0.9.3
我最近尝试了类似的方法,但收效甚微。然而,有多种方法可以使世界地图以 map
为中心。封装:见here , here ,和here 。使用后者的代码,下面的示例将世界地图以经度 160 为中心,在使用 ggplot2 绘制的世界地图上绘制 CRAN 镜像位置(使用 ggmap 包中的 geocode()
函数获得的坐标),并为新西兰绘制颜色(使用geom_polygon
)。将 map 以经度 160 为中心,使整个非洲位于 map 左侧,格陵兰岛大部分地区位于 map 右侧。
library(maps)
library(plyr)
library(ggplot2)
library(sp)
library(ggmap)
# Get some points to plot - CRAN Mirrors
Mirrors = getCRANmirrors(all = FALSE, local.only = FALSE)
Mirrors$Place = paste(Mirrors$City, ", ", Mirrors$Country, sep = "") # Be patient
tmp = geocode(Mirrors$Place)
Mirrors = cbind(Mirrors, tmp)
###################################################################################################
# Recentre worldmap (and Mirrors coordinates) on longitude 160
### Code by Claudia Engel March 19, 2012, www.stanford.edu/~cengel/blog
### Recenter ####
center <- 160 # positive values only
# shift coordinates to recenter CRAN Mirrors
Mirrors$long.recenter <- ifelse(Mirrors$lon < center - 180 , Mirrors$lon + 360, Mirrors$lon)
# shift coordinates to recenter worldmap
worldmap <- map_data ("world")
worldmap$long.recenter <- ifelse(worldmap$long < center - 180 , worldmap$long + 360, worldmap$long)
### Function to regroup split lines and polygons
# Takes dataframe, column with long and unique group variable, returns df with added column named group.regroup
RegroupElements <- function(df, longcol, idcol){
g <- rep(1, length(df[,longcol]))
if (diff(range(df[,longcol])) > 300) { # check if longitude within group differs more than 300 deg, ie if element was split
d <- df[,longcol] > mean(range(df[,longcol])) # we use the mean to help us separate the extreme values
g[!d] <- 1 # some marker for parts that stay in place (we cheat here a little, as we do not take into account concave polygons)
g[d] <- 2 # parts that are moved
}
g <- paste(df[, idcol], g, sep=".") # attach to id to create unique group variable for the dataset
df$group.regroup <- g
df
}
### Function to close regrouped polygons
# Takes dataframe, checks if 1st and last longitude value are the same, if not, inserts first as last and reassigns order variable
ClosePolygons <- function(df, longcol, ordercol){
if (df[1,longcol] != df[nrow(df),longcol]) {
tmp <- df[1,]
df <- rbind(df,tmp)
}
o <- c(1: nrow(df)) # rassign the order variable
df[,ordercol] <- o
df
}
# now regroup
worldmap.rg <- ddply(worldmap, .(group), RegroupElements, "long.recenter", "group")
# close polys
worldmap.cp <- ddply(worldmap.rg, .(group.regroup), ClosePolygons, "long.recenter", "order") # use the new grouping var
#############################################################################
# Plot worldmap using data from worldmap.cp
windows(9.2, 4)
worldmap = ggplot(aes(x = long.recenter, y = lat), data = worldmap.cp) +
geom_polygon(aes(group = group.regroup), fill="#f9f9f9", colour = "grey65") +
scale_y_continuous(limits = c(-60, 85)) +
coord_equal() + theme_bw() +
theme(legend.position = "none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
#axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank(),
panel.border = element_rect(colour = "black"))
# Plot the CRAN Mirrors
worldmap = worldmap + geom_point(data = Mirrors, aes(long.recenter, lat),
colour = "red", pch = 19, size = 3, alpha = .4)
# Colour New Zealand
# Take care of variable names in worldmap.cp
head(worldmap.cp)
worldmap + geom_polygon(data = subset(worldmap.cp, region == "New Zealand", select = c(long.recenter, lat, group.regroup)),
aes(x = long.recenter, y = lat, group = group.regroup), fill = "blue")
关于r - 世界地图与 ggmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201997/
当我尝试将 ggmap 与形状文件结合时,我遇到了剪切问题。 Kahle 和 Wickham (2013: 158) 中的示例工作正常,因为来自 ggmap 的光栅图像覆盖了整个形状文件。下面是当我尝
我正在尝试解决以下问题。 我使用 ggplot2 绘制岛屿 map : island = get_map(location = c(lon = -63.247593, lat = 17.631598)
我正在生成一些 map ,我想在 ggmap 上显示县的边界路线图。这是使用德克萨斯州部分地区的示例。 library(ggmap) map = get_map(location = c(-95.31
我有一个城市和相关信息的列表,我已经放在一个数据框中,如下所示: library(plyr) library(dplyr) library(ggmap) library(Imap) cities <-
我试图用 ggmap 在北极绘制一个特定区域.该地区的中心在纬度附近。 80 长。 0,不幸的是只显示灰色背景和经纬度轴。我试图绘制不同的区域,我的代码似乎适用于每个位置,除了纬度以外的区域。 73.
我正在使用一个空间数据集(主要是一个城市区域上的多边形),并且我想根据不同的缩放级别来产生不同的 View 。 当绘图边界框大于包含多边形的区域时,一切都很好。但是在放大时,某些多边形会得到边界框之外
我正在尝试使用 ggmap 在 map 上绘制点,但我不知道如何从 map 背景中删除国家名称 library(ggmap) library(mapproj) map tbl plot<-ggmap
我正在使用 ggmap,希望有一张以澳大利亚为中心的世界地图,我可以轻松地绘制地理编码点。与其他一些 map 包相比,ggmap 似乎更容易使用。然而,当我使用下面的代码浏览 map 时,它会出错。
我最近遇到了 ggmap 函数的问题 - 从来没有遇到过。 我有这个data.frame: > head(df) longitude latitude freq 1 -118.7093 34.13
我在 ggmap 包中使用了 Stamen 背景 map 。我想用 "#C0C0C0" 替换光栅背景图像中的所有黑色元素(即颜色 "#000000" - 基本上看起来更像 toner light 背景
我想用 R 和 ggmap 包可视化一个数据框。 df: | lon | lat | |-----------|-----------| | 6.585863 | 51.09
我正在使用 ggmap 来查找位置。某些位置会产生错误。例如, library(ggmap) loc = 'Blue Grass Airport' geocode(loc, output = c("m
我想知道是否有人使用 ggmap 围绕纬度/经度点绘制圆半径?例如,我想绘制一个给定的点,然后在该点周围 2,500 英尺的半径范围内绘制和着色。我脑子里有一个关于如何使用更大的圆周公式来做到这一点的
是否可以将 ggmap 保存到本地文件? 上下文:我需要一个大区域的高分辨率 map ,它需要 stamen服务器好久才搞定。我认为最好先获取 map ,然后将其保存到文件中,然后再处理本地副本。 我
我正在 ggmap 上绘制路线和点,我需要添加一个图例来列出点代表的名称 IE。 1 比尔哈里斯, 2 安妮·琼斯 等等.. 我已经准备好了样本数据。 structure(list(business.
一张图片胜过千言万语: 观察到的行为:从上图可以看出,国家名称与其实际几何形状不匹配。 预期行为:我想正确地将数据框与其几何图形连接起来,并在 ggmap 中显示结果。 我以前加入过不同的数据框,但显
我正在尝试绘制一些显示完整人口的信息,然后按 map 上的位置绘制该人口的子集。我见过使用同心圆或 3-d 倒锥体来表达这一点的数据可视化。我就是不知道怎么做 ggplot/ggmap 这是 Pain
我想在谷歌的灰色 map 上绘制各个城市的数据点。由于这些城市彼此之间有一些距离,我想我会使用多面图。 创建 map 很容易;请参阅下面的图像和代码。但是,每个方面都显示相同的区域 - 在本例中为大伦
我有以下代码。 library(ggmap) x = geocode("641123",output='all') x$results[[1]]$geometry$location$lat 显示 55
我想在 ggmap 上绘制热图。 library(ggmap) turku<-get_map('turku', zoom=13) turkumap<-ggmap(turku, extent
我是一名优秀的程序员,十分优秀!