不幸的是,尝试在ifelse
代码中使用ggplot
条件时,我在{{1}中将element_blank()
函数传递给axis.test.x
参数时遇到错误}。
theme()
任何建议或帮助将不胜感激。
答案 0 :(得分:2)
使用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,")"))))
Output(hideAxis == T):enter image description here
Output(hideAxis == F):enter image description here