[英]Error when using ifelse() condition in ggplot code
不幸的是,当我尝试在ggplot
代码中使用ifelse
条件时,我将element_blank()
函数传递给theme()
axis.test.x
参数时遇到错误。
hideAxis=T
ggplot(data = iris , aes(x=Sepal.Length, y=Sepal.Length)) +
geom_bar(stat="identity", fill ='#2219CCCC') +
xlab("Sepal.Length") +
ylab("Sepal.Length") +
theme(axis.text.x = ifelse(hideAxis==TRUE,element_blank(),element_text(angle =20)))
任何建议或帮助,将不胜感激。
使用eval()
和parse()
解决此情况。 eval()
函数计算一个表达式。 parse()
函数将字符类的R对象转换为表达式类的R对象。 通过使用,If-Else更改表达式。
# control
hideAxis = T
if(hideAxis == T){
axis_text_x_element <- 'element_blank()'
} else {
axis_text_x_element <- 'element_text(angle =20)'
}
# plot
ggplot(data = iris , aes(x=Sepal.Length, y=Sepal.Length)) +
geom_bar(stat="identity", fill ='#2219CCCC') +
xlab("Sepal.Length") +
ylab("Sepal.Length") +
eval(parse(text=(paste("theme(axis.text.x = ",axis_text_x_element,")"))))
输出(hideAxis == T): 在此处输入图像描述
输出(hideAxis == F): 在此处输入图像描述
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.