如何从 Choroplethr 地图中删除州缩写
How to Remove State Abbreviations from a Choroplethr Map
我正在使用如下图所示的 choroplethr
地图。如何简单地删除州缩写?
复制代码如下:
library(choroplethr)
library(choroplethrMaps)
data(df_pop_state)
df_pop_state$value <- as.numeric(df_pop_state$value)
state_choropleth(df_pop_state, num_colors = 1,
title = "2012 State Population Estimates",
legend = "Population")
此函数 returns 一个 ggplot 对象,因此您可以手动检查图层并删除不需要的图层(此处要删除 GeomText 图层):
states <- state_choropleth(
df_pop_state,
num_colors = 1,
title = "2012 State Population Estimates",
legend = "Population"
)
layer_no <- grep("GeomText", sapply(states$layers, function(x) class(x$geom)[1]))
states$layers[[layer_no]] <- NULL
states
感谢您使用 choroplethr。请注意,Choroplethr 使用 R6 对象。事实上,state_choropleth
函数只是 StateChoropleth
R6 对象的便利包装器:
> state_choropleth
function (df, title = "", legend = "", num_colors = 7, zoom = NULL,
reference_map = FALSE)
{
c = StateChoropleth$new(df)
c$title = title
c$legend = legend
c$set_num_colors(num_colors)
c$set_zoom(zoom)
if (reference_map) {
if (is.null(zoom)) {
stop("Reference maps do not currently work with maps that have insets, such as maps of the 50 US States.")
}
c$render_with_reference_map()
}
else {
c$render()
}
}
<bytecode: 0x7fdda6aa3a10>
<environment: namespace:choroplethr>
如果您查看 source code,您会看到对象上有一个字段可以执行您想要的操作:show_labels
。它默认为 TRUE
。
我们可以通过简单地使用 StateChoropleth
对象(不是函数)创建地图并将 show_labels
设置为 FALSE
.
来获得您想要的结果
c = StateChoropleth$new(df_pop_state)
c$title = "2012 State Population Estimates"
c$legend = "Population"
c$set_num_colors(1)
c$show_labels = FALSE
c$render()
我之所以选择这种方法,是因为一般来说,我发现 R 中的许多函数都有大量参数,这可能会造成混淆。缺点是函数比对象更容易记录(尤其是在 R 中),所以经常出现这样的问题。
我正在使用如下图所示的 choroplethr
地图。如何简单地删除州缩写?
复制代码如下:
library(choroplethr)
library(choroplethrMaps)
data(df_pop_state)
df_pop_state$value <- as.numeric(df_pop_state$value)
state_choropleth(df_pop_state, num_colors = 1,
title = "2012 State Population Estimates",
legend = "Population")
此函数 returns 一个 ggplot 对象,因此您可以手动检查图层并删除不需要的图层(此处要删除 GeomText 图层):
states <- state_choropleth(
df_pop_state,
num_colors = 1,
title = "2012 State Population Estimates",
legend = "Population"
)
layer_no <- grep("GeomText", sapply(states$layers, function(x) class(x$geom)[1]))
states$layers[[layer_no]] <- NULL
states
感谢您使用 choroplethr。请注意,Choroplethr 使用 R6 对象。事实上,state_choropleth
函数只是 StateChoropleth
R6 对象的便利包装器:
> state_choropleth
function (df, title = "", legend = "", num_colors = 7, zoom = NULL,
reference_map = FALSE)
{
c = StateChoropleth$new(df)
c$title = title
c$legend = legend
c$set_num_colors(num_colors)
c$set_zoom(zoom)
if (reference_map) {
if (is.null(zoom)) {
stop("Reference maps do not currently work with maps that have insets, such as maps of the 50 US States.")
}
c$render_with_reference_map()
}
else {
c$render()
}
}
<bytecode: 0x7fdda6aa3a10>
<environment: namespace:choroplethr>
如果您查看 source code,您会看到对象上有一个字段可以执行您想要的操作:show_labels
。它默认为 TRUE
。
我们可以通过简单地使用 StateChoropleth
对象(不是函数)创建地图并将 show_labels
设置为 FALSE
.
c = StateChoropleth$new(df_pop_state)
c$title = "2012 State Population Estimates"
c$legend = "Population"
c$set_num_colors(1)
c$show_labels = FALSE
c$render()
我之所以选择这种方法,是因为一般来说,我发现 R 中的许多函数都有大量参数,这可能会造成混淆。缺点是函数比对象更容易记录(尤其是在 R 中),所以经常出现这样的问题。