You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言gratia包draw()绘制GAM时如何调整点透明度

gratia包draw()绘制GAM模型的点透明度调整方法

核心方案

gratia包的draw()方法对二维平滑项(含地理空间平滑)内置了点透明度控制参数,直接传入point_alpha即可调整,参数取值范围为01,值越高透明度越低。高密度地理数据场景建议将该值设为0.10.3,同时搭配调小点尺寸,可大幅提升可读性。
示例代码:

library(gratia)
library(ggplot2)
library(mgcv)

df2 <- data_sim(2, n = 1000, dist = "normal", scale = 1, seed = 2)
m2 <- gam(y ~ s(x, z, k = 40), data = df2, method = "REML")

# 调整点透明度为0.2、点大小为0.5,适配高密度点展示
draw(m2, contour = FALSE, point_alpha = 0.2, point_size = 0.5)

灵活调整方案

draw()返回标准ggplot2对象,如果需要做更精细化的自定义调整,可以在生成基础图后,直接修改散点图层的属性,无需重复计算绘图数据:

# 生成基础绘图对象
p <- draw(m2, contour = FALSE)

# 遍历修改所有散点图层的透明度和大小
p$layers <- lapply(p$layers, function(layer) {
  if (inherits(layer$geom, "GeomPoint")) {
    layer$aes_params$alpha <- 0.2
    layer$aes_params$size <- 0.5
  }
  layer
})

# 输出图形
print(p)

地理数据可视化优化提示

  • 高密度平滑点场景不建议完全关闭等高线,可设置contour = TRUE,用半透明散点搭配明确的等高线梯度,展示效果更清晰
  • 若需要叠加原始观测点位,建议单独新增geom_point()图层设置区分样式(比如不同形状、更高透明度),避免与平滑预测点混淆

内容的提问来源于stack exchange,提问作者helianthus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 02:09:18