为什么我不能返回element_text()
> ifelse(TRUE,element_text(size=20),element_text(size=10))
[[1]]
NULL
但我可以这样做吗?
> 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"
答案 0 :(得分:7)
你可能不会尝试使用它:
这是我的意思的一个例子:
ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) +
geom_boxplot() +
theme(legend.text = element_text(size=ifelse(TRUE, 20, 10)))
它与您使用的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)})
虽然我真的不会这样格式化但是将它保持在一行以便与你的方法进行比较。
问题不是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’.
在您的问题中,您会在结构中显示element_text(size=10)
的输出与test
不相似。