将具有连续比例的克里格图更改为离散的

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()

【讨论】:

以上是关于将具有连续比例的克里格图更改为离散的的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2多边形->错误:提供给连续比例的离散值

提供给离散比例ggplot2的连续值

ggplot2 + geom_point + 与大小成比例的气泡(错误“离散值提供给连续比例”)

即使我使用数字,ggplot2中的离散值/连续比例误差

向箱线图添加颜色 - “提供给离散比例的连续值”错误

在ggplot中创建半离散颜色条