为什么我不能返回element_text()
> ifelse(TRUE,element_text(size=20),element_text(size=10))
[[1]]
NULL
Run Code Online (Sandbox Code Playgroud)
但我可以这样做吗?
> element_text(size=20)
List of 8
$ family : NULL
$ face : NULL
$ colour : NULL
$ size : num 20
$ hjust : NULL
$ vjust : NULL
$ angle : NULL
$ lineheight: NULL
- attr(*, "class")= chr [1:2] "element" "element_text"
Run Code Online (Sandbox Code Playgroud)
你不能试图使用它:
这是我的意思的一个例子:
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
geom_boxplot() +
theme(legend.text = element_text(size=ifelse(TRUE, 20, 10)))
Run Code Online (Sandbox Code Playgroud)
它与if else你正在使用(ifelse)的矢量化有关.我想你是在追求if(){}else{}:
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
geom_boxplot()+
theme(legend.text = if(TRUE){element_text(size=20)} else {element_text(size=10)})
Run Code Online (Sandbox Code Playgroud)
虽然我真的不会这样格式化,但保持一行,以便与您的方法进行比较.
问题不在于ggplot2你的使用ifelse.退房,?ifelse文档说:
‘ifelse’ returns a value with the same shape as ‘test’ which is
filled with elements selected from either ‘yes’ or ‘no’ depending
on whether the element of ‘test’ is ‘TRUE’ or ‘FALSE’.
Run Code Online (Sandbox Code Playgroud)
在您的问题中,您显示的输出element_text(size=10)与test结构不相似.