- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力在我的一些 map 中插入比例尺。我使用 ggmaps,目前正在使用 ggsn 包插入比例尺。然而,这个比例尺在我正在使用的 map 类型上非常难以阅读(见下图)。我想 (a) 找到一种方法使其更易于阅读,(b) 将比例尺置于 map 边界之外,或者 (c) 使用不同的包以更轻松地进行自定义。
基本上,我的代码看起来像这样。这个例子应该很容易重现。
map <- get_map(location = c(146, 15), zoom = 8,
maptype = “satellite”, source = "google")
Map <- ggmap(map)
Map + ggsn::scalebar(x.min = 144.5, x.max = 147.5,
y.min = 13.5, y.max = 16.5,
dist = 50, dd2km = TRUE, model = 'WGS84')
并生成如下图,其中右下角的比例尺很难看清。
有什么想法吗?非常感谢!
最佳答案
Github 上的 scalebar
开发版有新的参数,st.color
和 box.fill
,可以更好地自定义 bar .
安装该版本使用:
devtools::install_github('oswaldosantos/ggsn')
然后使用例如:
ggmap(Map) +
my_scalebar(x.min = 144.5, x.max = 147.5,
y.min = 13.5, y.max = 16.5,
dist = 50, dd2km = TRUE, model = 'WGS84',
box.fill = c("yellow", "white), st.color = "white")
旧答案
我写了这个关于如何在发现新版本之前修改函数的答案。
我认为这里最好的方法是修改 scalebar
函数。
首先,您需要加载ggsn
包并编辑函数:
library(ggsn)
my_scalebar <- edit(scalebar)
这应该会弹出一个编辑器。修改函数的顶部,使其看起来像这样:
function (data = NULL, location = "bottomright", dist, height = 0.02,
st.dist = 0.02, st.bottom = TRUE, st.size = 5, dd2km = NULL,
model, x.min, x.max, y.min, y.max, anchor = NULL, facet.var = NULL,
facet.lev = NULL, box2_fill = "yellow", legend_color = "white")
{
require(maptools)
我们添加了 3 件事:
box2_fill
默认值 = "yellow"legend_color
默认值 = "white"maptools
因为该函数使用该包中的 gcDestination()
接下来,查找以 gg.box2
开头的行并将其更改为使用 box2_fill
的值:
gg.box2 <- geom_polygon(data = box2, aes(x, y), fill = box2_fill,
color = "black")
然后,编辑函数底部附近的部分以使用 legend_color
的值:
else {
gg.legend <- annotate("text", label = paste0(legend[,
"text"], "km"), x = x.st.pos, y = st.dist, size = st.size,
color = legend_color)
}
保存将关闭编辑器并将新函数 my_scalebar
保存到您的工作空间。
现在您可以使用新功能了。您可以为新参数 box2_fill =
和 legend_color =
提供值,或者只尝试默认值:
ggmap(Map) +
my_scalebar(x.min = 144.5, x.max = 147.5,
y.min = 13.5, y.max = 16.5,
dist = 50, dd2km = TRUE, model = 'WGS84')
如果您认为您的编辑有用,您可以使用拉取请求将它们建议给包开发人员 at Github .注意:看起来开发人员已经开始解决这个问题,因为 scalebar
的 Github 版本有新的 box.fill
和 st.color
参数。
关于r - 向 ggmap 添加易于阅读的比例尺(使用 ggsn 包?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738561/
当我尝试将 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
我是一名优秀的程序员,十分优秀!