另一个出版图,另一天在ggplot2中调整了一些东西...我在唠叨?我不确定......
dat <- data.frame(x = rnorm(100), y = rnorm(100))
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah[1]))
dat <- data.frame(x = rnorm(100), y = rnorm(100))
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah[1d]))
我正在尝试找出如何在轴标签中包含下标字母。第一个例子只是一个数字,只要你在方括号中有一个字符就会失败。 Blah [下标(1d)]基本上就是我需要的,但我无法弄清楚如何让它让我在下标中有字母。尝试了各种变体,包括paste()等。
当然,要增加挫折......
labs(y=expression(Blah[12]))
- 这有效
labs(y=expression(Blah[d]))
- 这有效
labs(y=expression(Blah[d1]))
- 这有效
labs(y=expression(Blah[1d]))
- 这失败了。
思想?
答案 0 :(得分:62)
我可以想到两种比使用paste
更好的方法:
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah[1*d]))
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah["1d"]))
R中的标记(或“名称”或“符号”)不应以数字开头。因此,您可以通过引用或通过非空格分隔符1
运算符分隔d
和*
来解决此限制。将“纯数字文字”与“合法的R符号或标记”“连接”或“连接”。
只需取消订阅百分号:
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah[1*d]*"%"))
将parens放在pct-sign周围:
expression(Blah[1*d]*"(%)")
%
字符在R解析中具有特殊含义,因为它表示用户定义的中缀运算符的开头。因此,将其用作文字需要引用它。同样的推理要求引用“for”和“in”,因为它们在R的“保留字”组中。还有其他保留字,(但for
和in
是那些最让我失望的是。)输入:
?Reserved
答案 1 :(得分:7)
好。我发誓,我没有发布这个只是为了自己回答,尽管我得到它的速度很快(当你提问时总是这样!)
这是:
ggplot(dat, aes(x=x,y=y)) +
geom_point() +
labs(y=expression(Blah[1][d]))
最好发布答案而不是删除问题,因为它可能有一天会帮助别人。
除了'Blahs'之外,我真正想要的是expression(paste("Hb", A[1][c]," (%)",sep=""))
为什么paste0()
在我这里不起作用。