我正在创建一个关于鸟类每年变化百分比的专题图.这是我的代码:
tm_shape(grid83)+
tm_fill("trend", title = "Percent change per Year", textNA = "None counted", style="fixed",
breaks=c(-Inf, -1.5, -0.25, 0.25, 1.5, Inf),
palette = c("red", "orange", "yellow", "turquoise", "blue", "white"))+
tm_borders(NA)+
tm_shape(uscan83)+ # add US and CAN
tm_borders()+
tm_layout(
"Western Grebe",
legend.title.size=1,
legend.text.size = 0.6,
legend.position = c("left","bottom"),
legend.bg.color = "white",
legend.digits = 5,
legend.bg.alpha = 1)
Run Code Online (Sandbox Code Playgroud)
目前,所有NA值都显示为灰色.我试图改变调色板:
palette = c("red", "orange", "yellow", "turquoise", "blue", "white"))
Run Code Online (Sandbox Code Playgroud)
但这似乎没有用.NA值仍然是灰色的.我究竟做错了什么?
非常感谢!
我正在使用 ubuntu 18.04 并且以下代码生成错误
library(sf)
library(tmap)
library(dplyr)
library(raster)
#sudo apt install libproj-dev
#devtools::install_github("robinlovelace/geocompr")
library(spDataLarge)
if(!file.exists("e.tif"))
download.file("https://github.com/geocompr/geocompkg/releases/download/0.1/e.tif",
"e.tif")
elev = raster("e.tif")
urban = spData::urban_agglomerations %>%
filter(year == 2030) %>%
dplyr::select(population_millions)
summary(urban)
tm_shape(elev) +
tm_raster(breaks = c(-10000, 0, 10, 50, 100, 10000)) +
tm_shape(urban) +
tm_dots(size = "population_millions", scale = 0.5)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
Error in CPL_transform(x, crs, aoi, pipeline, reverse) :
OGRCreateCoordinateTransformation() returned NULL: PROJ available?
In addition: Warning message:
In CPL_transform(x, crs, aoi, pipeline, reverse) :
GDAL Error 1: No PROJ.4 translation …Run Code Online (Sandbox Code Playgroud) 所以我在R中有一个名为obesity_map的数据框,它基本上给我了每个县的州,县和肥胖率.它看起来或多或少像这样:
obesity_map = data.frame(state, county, obesity_rate)
Run Code Online (Sandbox Code Playgroud)
我试图通过显示整个美国各县的各种肥胖率来在地图上想象这个:
us.state.map <- map_data('state')
head(us.state.map)
states <- levels(as.factor(us.state.map$region))
df <- data.frame(region = states, value = runif(length(states), min=0, max=100),stringsAsFactors = FALSE)
map.data <- merge(us.state.map, df, by='region', all=T)
map.data <- map.data[order(map.data$order),]
head(map.data)
map.county <- map_data('county')
county.obesity <- data.frame(region = obesity_map$state, subregion = obesity_map$county, value = obesity_map$obesity_rate)
map.county <- merge(county.obesity, map.county, all=TRUE)
ggplot(map.county, aes(x = long, y = lat, group=group, fill=as.factor(value))) + geom_polygon(colour = "white", size = 0.1)
Run Code Online (Sandbox Code Playgroud)
它基本上创建了一个如下所示的图像:

正如你所看到的,美国被划分为奇怪的形状,颜色不是一致的颜色,在不同的渐变中,你不能从中获得很多.但我真正想要的是下面的内容,但每个县都填写:

我对此很新,所以我很感激所有的帮助!
编辑:
这是dput的输出:
dput(obesity_map)
Run Code Online (Sandbox Code Playgroud)
结构(列表(X = 1:3141,FIPS …
我正在试图弄清楚如何在gglot2中显示我的完整地图,包括岛屿.r_base和tmap都能够显示岛屿,但ggplot2无法将岛屿与其他水体区分开来......
.
我的问题是如何让群岛出现在ggplot2中?
请参阅下面使用的代码.
library(ggplot2)
library (rgdal)
library (rgeos)
library(maptools)
library(tmap)
Run Code Online (Sandbox Code Playgroud)
PG <- readShapePoly("iho.shp")
Q<-plot(PG)
对应于图A.
qtm(PG)
对应于图B.
AG <- fortify(PG)
ggplot()+ geom_polygon(data=AG, aes(long, lat, group = group),
colour = alpha("darkred", 1/2), size = 0.7, fill = 'skyblue', alpha = .3)
对应于图C.
我正在尝试绘制一张没有“框边框”的地图。
有人知道如何解决tmap包装问题而不打印“外框边框”吗?- 不要混淆,tm_borders因为它是绘制地图中多边形边界的线段。
这是我的示例代码:
tm_obj <- tm_shape(area_spdf) +
tm_fill(col = var, palette = "Blues", legend.show = FALSE) +
tm_borders(col = "burlywood4", lwd = 0.25)`
save_tmap(tm = tm_obj,
filename = paste("plot_tm_output_", var, ".png", sep = ""))`
Run Code Online (Sandbox Code Playgroud)
从tmap库中运行示例代码:
library("tmap")
tmap_mode("plot")
data(NLD_muni)
tm_shape(NLD_muni) +
tm_borders() +
tm_bubbles(size = c("origin_native", "origin_non_west"), legend.size.is.portrait = TRUE)
Run Code Online (Sandbox Code Playgroud)
给我以下地图
所有的工作都像宣传的那样,但是我试图强制tmap在两个地图上使用相同的气泡尺寸..并且只绘制一个图例.怎么可能实现?
我想使用R中的tmap包将专题图主标题的字体从“普通”更改为斜体,但保留图例标题和文本的字体“普通”。
但是,当我更改lm_layout()函数中的参数fontface时,它会更改地图中所有文本的字体。是否可以只更改 tmap 中主标题的字体?
我尝试的可重现示例(不幸的是,它将地图中所有文本的字体更改为斜体)如下:
library(tmap)
data("World")
tm_shape(World) +
tm_polygons("HPI", title = "World - HPI") +
tm_layout(main.title = "HPI",
main.title.position = "center",
fontface = 3)
Run Code Online (Sandbox Code Playgroud)
编辑: tmap 包的作者 Martijn Tennekes 向 tm_layout 添加了 10 个参数(因此也添加了 tmap 选项)以允许对此进行控制:(地图)标题、主标题、panel.label 的本地字体和字体系列,图例.标题和图例.文本。
tm <- tm_shape(World) +
tm_polygons(c("HPI", "economy"), title = c("Legend 1", "Legend 2")) +
tm_layout(main.title = "Main Title",
main.title.position = "center",
title = c("Title 1", "Title 2"),
panel.labels = c("Panel 1", "Panel 2")) …Run Code Online (Sandbox Code Playgroud) 我想知道当 tmap 模式设置为绘图而不是交互模式时,是否可以将底图添加到 tmap 中制作的地图。
这是我用来制作地图的代码
library(sf)
library(spData)
library(tmap)
tm_shape(nz) +
tm_polygons(
"Median_income",
palette = "Blues",
n = 10,
) +
tm_layout(basemaps = leaflet::providers$OpenStreetMap)
Run Code Online (Sandbox Code Playgroud)
使用此代码,我可以在 Plot 中查看底图,因为我只想可视化新西兰而不是周围的海洋。
我想操纵我的图例中的“失踪”标签。

我正在使用 R 中的 tmap 函数。我想将其更改为“缺少或不符合绅士化条件”
我尝试使用 tm_text 函数并考虑如何更改基础数据中的标签,但尚未找到解决方案。另请注意,代码使用映射函数。
########################
# categorical mapping function
########################
cat.maps.wide.function <- function(data, varname, ltitle, colorplaette){
tm_shape(data, unit = "mi") +
tm_polygons(col = varname , # add variable(s)
style = "cat", # set break pattern to object LQ.cuts
palette = colorplaette, # set color fill to blue refreshing
border.col = "grey40", # color the borders white
border.alpha = 0.5, # set border transparency
title = ltitle, # title for legend
colorNA = "white") + # …Run Code Online (Sandbox Code Playgroud) 我目前正在使用它tmap来创建交互式地图。由于初始缩放时结果非常混乱(见下图),我想实现标记集群。
我知道传单允许通过添加参数或调用来使用标记集群(来源:clusterOptions = markerClusterOptions()https : //rstudio.github.io/leaflet/markers.html),但还没有找到如何使用.addMarkers()addCircleMarkers()tmap
如何在 中添加标记簇tmap?