【发布时间】:2015-04-17 21:09:35
【问题描述】:
我想为用户创建一个 ggplot 调用变量,而不更改脚本中的 ggplot 调用...
我有一个包含不同列的数据框,我很想用它来标记我的绘图上的点。很多这些列都很长,我想提供一个函数“shortname”来缩短列...
我也想用一个变量来制作这个变量,这就是我现在卡住的地方。
df <- data.frame(a=c('a;b;c','d;e;f'), b=c('A;B;C','D;E;F'),
x=c(1,2), y=c(2,3))
use_column <- 'b'
shortname <- function(x) {
sub('([^;]+).*', '\\1', x)
}
g <- ggplot(df, aes(x,y)) + geom_point()
g + geom_text(aes(label=a))
g + geom_text(aes(label=shortname(a)))
g + geom_text(aes(label=shortname(b)))
到目前为止,一切都按预期进行。第一个图显示缩短的 a 列,第二个图显示 b 列。但是当我尝试使用变量时 use_column,我不让它运行...
g + geom_text(aes_string(label=shortname(use_column)))
我的想法已经不多了,希望有人可以帮助我。
提前致谢!
【问题讨论】: