在ggplot轴标签中的下标字母
另一张出版物的图表,另一天在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)]基本上就是我所需要的,但是我不知道如何让它在下标中有字母。 已尝试变化,包括粘贴()等
当然,为了增加挫折感
labs(y=expression(Blah[12]))
– 这是有效的
labs(y=expression(Blah[d]))
– 这是有效的
labs(y=expression(Blah[d1]))
– 这是有效的
labs(y=expression(Blah[1d]))
– 失败。
思考?
我可以想到两个比使用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]*"%"))
围绕这个标志放置一些东西:
expression(Blah[1*d]*"(%)")
%
字符在Rparsing中有特殊含义,因为它表示用户定义的中缀运算符的开始。 所以要用它作为文字,需要引用它。
好的。 我汗,我没有发表这个只是为了自己回答,尽pipe我有多快(总是当你问一个问题的方式!这里是:
ggplot(dat, aes(x=x,y=y)) + geom_point() + labs(y=expression(Blah[1][d]))
认为最好是发布答案,而不是删除问题,因为它可能有助于别人有一天。
“Blahs”放在一边,我真正想要的是expression(paste("Hb", A[1][c]," (%)",sep=""))
为什么paste0()
在这里不起作用是超出我的。