我试图构建一个函数来自动完成某些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)
它给了我上面显示的相同的情节
有什么建议吗?
答案 0 :(得分:0)
您需要返回剧情
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)
}