标签: tmap

如何操纵tmap传奇?

我正在创建一个关于鸟类每年变化百分比的专题图.这是我的代码:

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值仍然是灰色的.我究竟做错了什么?

非常感谢!

gis r tmap

10
推荐指数
1
解决办法
1万
查看次数

CPL_transform(x, crs, aoi, pipeline, reverse) 中的错误:OGRCreateCoordinateTransformation() 返回 NULL:PROJ 可用?

我正在使用 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 proj tmap

10
推荐指数
1
解决办法
2686
查看次数

ggplot/mapping美国县 - R中可视化形状的问题

所以我在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)

它基本上创建了一个如下所示的图像:

IMG

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

IMG2

我对此很新,所以我很感激所有的帮助!


编辑:

这是dput的输出:

dput(obesity_map)
Run Code Online (Sandbox Code Playgroud)

结构(列表(X = 1:3141,FIPS …

r ggplot2 tmap

8
推荐指数
3
解决办法
1万
查看次数

在ggplot2中绘制形状文件

我正在试图弄清楚如何在gglot2中显示我的完整地图,包括岛屿.r_base和tmap都能够显示岛屿,但ggplot2无法将岛屿与其他水体区分开来...... 在此输入图像描述.

我的问题是如何让群岛出现在ggplot2中?

请参阅下面使用的代码.

library(ggplot2)
library (rgdal)
library (rgeos)
library(maptools)
library(tmap)
Run Code Online (Sandbox Code Playgroud)

加载波斯湾形状填充称为iho

PG <- readShapePoly("iho.shp")

形状文件可在此处获得

http://geo.vliz.be:80/geoserver/wfs?request=getfeature&service=wfs&version=1.0.0&typename=MarineRegions:iho&outputformat=SHAPE-ZIP&filter=%3CPropertyIsEqualTo%3E%3CPropertyName%3Eid%3C%2FPropertyName%3E%3CLiteral %3E41%3C%2FLiteral%3E%3C%2FPropertyIsEqualTo%3E

用r_base绘图

Q<-plot(PG)

对应于图A.

用tmap绘图

qtm(PG)

对应于图B.

转换为数据帧

AG <- fortify(PG)

用ggplot2绘图

ggplot()+ geom_polygon(data=AG, aes(long, lat, group = group), colour = alpha("darkred", 1/2), size = 0.7, fill = 'skyblue', alpha = .3)

对应于图C.

r ggplot2 tmap

7
推荐指数
2
解决办法
6594
查看次数

如何导出没有图表边框的 tm 对象

我正在尝试绘制一张没有“框边框”的地图。

有人知道如何解决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)

在此处输入图片说明

r rgdal tmap

7
推荐指数
1
解决办法
1643
查看次数

如何在tmap中共享多个地图的图例?

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

7
推荐指数
1
解决办法
448
查看次数

tmap R - 将专题图标题的字体从普通字体更改为斜体,但保持图例的字体普通

我想使用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)

r tmap

7
推荐指数
1
解决办法
2728
查看次数

如何将底图添加到 R 中的 tmap 图中?

我想知道当 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

7
推荐指数
3
解决办法
4424
查看次数

操作图例中的“丢失”标签:tmap

我想操纵我的图例中的“失踪”标签。

图像1

我正在使用 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)

r legend tmap

7
推荐指数
1
解决办法
3709
查看次数

tmap 中的标记簇

我目前正在使用它tmap来创建交互式地图。由于初始缩放时结果非常混乱(见下图),我想实现标记集群。

在此输入图像描述

我知道传单允许通过添加参数或调用来使用标记集群(来源:clusterOptions = markerClusterOptions()https : //rstudio.github.io/leaflet/markers.html),但还没有找到如何使用.addMarkers()addCircleMarkers()tmap

如何在 中添加标记簇tmap

r leaflet tmap leaflet.markercluster

6
推荐指数
1
解决办法
854
查看次数

标签 统计

r ×10

tmap ×10

ggplot2 ×2

gis ×1

leaflet ×1

leaflet.markercluster ×1

legend ×1

proj ×1

rgdal ×1