实用技巧

 

这个是原始的代码,我想使用一个变量动态来代替里面的se或者是sd,一搬来说直接的文本格式肯定是行不通的,于是我问AI找到了解决方案

  p <- p + geom_text(data = plotdata, aes(x = group,
                                          y = mean + se + max(plotdata$mean)*0.08,
                                          label = marker,fontface = "plain"),
                     size = Size_letters,
                     position = position_dodge(1),
                     family = temp_family)

 

 

ggplot2 中,你可以使用 evalparse 来动态设置表达式,从而将一个字符串变量转换为 ggplot 识别的符号。以下是解决方案的步骤:

动态替换变量

  1. 定义 dis 变量(如 "sd""se")。
  2. aes() 中,使用 eval(parse(text = ...)) 动态解析 dis
  3. 确保 dis 所引用的变量在 plotdata 数据框中存在。

 

我的改动:

其中的dis为中间的变量,ggplot可以正确识别

dis = "sd"   # se sd

  p <- p + geom_text(data = plotdata, aes(x = group,
                                          y = mean + eval(parse(text = dis)) + max(plotdata$mean)*0.08,
                                          label = marker,fontface = "plain"),
                     size = Size_letters,
                     position = position_dodge(1),
                     family = temp_family) }

 

get()也是可以使用的

get(error_bar_type)

本文最后更新于2024-12-31如有失效,请留言
THE END