将具有连续比例的克里格图更改为离散的
Posted
技术标签:
【中文标题】将具有连续比例的克里格图更改为离散的【英文标题】:Change krig plot with a continuous scale to discrete 【发布时间】:2021-03-03 09:39:54 【问题描述】:我正在尝试解决克里金/ggplot 问题。我目前使用以下方法显示连续比例的图:
Cu_DTPA_NL.kriged %>%
as.data.frame() %>%
ggplot(aes(x = x, y = y)) +
geom_raster(aes(fill = var1.pred), interpolate = TRUE) +
coord_equal() +
scale_fill_viridis(option = "inferno") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
theme_bw()
但我想将颜色渐变更改为离散,选择我自己的颜色、比例、包括轮廓,但我无法让它工作,请参阅下面的示例图像和代码:
Zn_DTPA_NL.kriged <- krige(Zn ~ 1, DTPA_North, North_krige_grid, model = lzn_DTPA_NL.fit)
Zn_DTPA_NL.kriged %>%
as.data.frame() %>%
ggplot(aes(x = x, y = y)) +
geom_raster(aes(fill = var1.pred), interpolate = TRUE) +
coord_equal() +
scale_colour_manual(
breaks = c("550", "650", "750", "850"),
labels = c("550", "650", "750", "850"),
values = c(
"#0000FF", "#33CCFF",
"#99FF99", "#FFCC33", "#CC0000"
)
) +
scale_fill_manual(
breaks = c("550", "650", "750", "850"),
labels = c("550", "650", "750", "850"),
values = c(
"#0000FF", "#33CCFF",
"#99FF99", "#FFCC33", "#CC0000"
)
) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
theme_bw()
任何建议都会很棒!
【问题讨论】:
也许先尝试对值进行分箱,然后使用该数据创建一个因子列。然后在 ggplot 中,您可以在新因子列上使用 scale_fill_manual()。 【参考方案1】:我从 Facebook 上的 Ecology in R 小组得到了答案。
第一个选项是使用手动分箱:
dat <- data.frame(Zn_DTPA_NL.kriged)
# make a new column with discrete breaks
dat$brks <- cut(dat$var1.pred,
breaks=c(0, 550, 650, 750, 850, Inf),
labels = c("0-550", "550-650", "650-750", "750-850", ">850))
第二个是使用自动分箱:
scale_fill_viridis_b()
【讨论】:
【参考方案2】:使用 geom_contour_fill()。这会让你达到 80%。
Cu_DTPA_NL.kriged %>%
as.data.frame() %>%
ggplot(aes(x = x, y = y)) +
geom_contour_filled(aes(z = var1.pred)) +
coord_equal() +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
theme_bw()
【讨论】:
以上是关于将具有连续比例的克里格图更改为离散的的主要内容,如果未能解决你的问题,请参考以下文章