如何更改 ggpubr::lineplot 中数据点的大小和透明度

How to change the size and transparency of data points in ggpubr::lineplot

我正在尝试更改使用 ggpubr::lineplot 生成的以下线图的抖动数据点的大小和透明度。我没有从函数文档中找到任何参数来完成这项工作。感谢是否有人可以提供帮助。

library(ggpubr)
ggline(ToothGrowth, x = "dose", y = "len", 
       add = c("mean_se", "jitter"),
       size=2)

我也看不出如何轻松完成。但是,我们可以手动传递这些参数。首先,我们需要确定图中的哪个 layer 对应于那些抖动的点。我们可以用

pp <- ggline(ToothGrowth, x = "dose", y = "len", 
             add = c("mean_se", "jitter"), size = 2)
idx <- which(sapply(pp$layers, function(l) "PositionJitter" %in% class(l$position)))

其余的不言自明:

pp$layers[[idx]]$aes_params$alpha <- 0.2
pp$layers[[idx]]$aes_params$size <- 3
pp

好处是这种方法很容易推广。

您可以使用 add.params 参数轻松完成此操作:

例如:

ggline(ToothGrowth, x = "dose", y = "len", 
       add = c("mean_se", "jitter"),
       size=2, add.params = list(size = 3, alpha = 0.2))