我试图构建一个函数,它可以在一些ggplot层中自动地进行更改。具体来说,我编写了一个应该修改axis.text和axis.title的函数。
axis_view_presentation<-function(plot,data,axis_title_x,axis_title_y,...)
{
#browser()
if(axis_title_x==TRUE & axis_title_y==TRUE )
{
plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_text(size=18,...),
axis.title.y = element_text(size=18,...))
}
if(axis_title_x==FALSE & axis_title_y==TRUE )
{
plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_blank(),
axis.title.y = element_text(size=18,...))
}
if(axis_title_x==TRUE & axis_title_y==FALSE )
{
plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.y =element_blank(),
axis.title.x = element_text(size=18,...))
}
if(axis_title_x==FALSE & axis_title_y==FALSE )
{
plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_blank(),
axis.title.y = element_blank())
}
}可复制的例子
data<-data.frame(x=rnorm(20),y=rnorm(20))
p<-ggplot(data=data,aes(x=x,y=y))+
geom_point()返回这个

如果我调用我的函数
p%>%axis_view_presentation(data=data,axis_title_x=TRUE,axis_title_y=FALSE)它给了我上面显示的同样的情节
有什么建议吗?
发布于 2018-06-21 14:03:26
你得把情节还回去
axis_view_presentation<-function(plot,data,axis_title_x,axis_title_y,...)
{
#browser()
if(axis_title_x==TRUE & axis_title_y==TRUE )
{
plot_new <- plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_text(size=18,...),
axis.title.y = element_text(size=18,...))
}
if(axis_title_x==FALSE & axis_title_y==TRUE )
{
plot_new <- plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_blank(),
axis.title.y = element_text(size=18,...))
}
if(axis_title_x==TRUE & axis_title_y==FALSE )
{
plot_new <- plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.y =element_blank(),
axis.title.x = element_text(size=18,...))
}
if(axis_title_x==FALSE & axis_title_y==FALSE )
{
plot_new <- plot+theme(plot.title = element_text(hjust=0.5,size=20,face="bold"),
axis.text.x = element_text(size=18,hjust=1,...),
axis.text.y = element_text(size=18,hjust=1,...),
axis.title.x =element_blank(),
axis.title.y = element_blank())
}
return(plot_new)
}https://stackoverflow.com/questions/50970374
复制相似问题