我正在尝试在facet_grid()
中创建一个ggplot()
,并且我的情节边缘存在问题。我正在使用grid.draw()
作为我的最终情节,并且无法弄清楚如何调整打印边距。当我保存我的情节时,看起来很好(见下文)。然而,当我实际将我的情节打印到硬拷贝时,一半的X& Y标签和我的情节标题被切断了。
我尝试使用par()
无效。这是一个可重复的例子,类似于我的实际情节。我需要保留panel <- off
部分,因为在我的实际情节中,我在每个条形图上方绘制了数字,并且它们在每个月的开始/结束时被小平面切断了几天。我认为这可能是问题的根源,但我并不确定是诚实的。
data(airquality)
library(stats)
library(ggplot2)
library(gtable)
library(gridExtra)
library(grid)
library(dplyr)
library(scales)
facet <- ggplot() +
geom_bar(data=airquality,aes(y=Wind,x=Day,fill=Temp),colour="black",stat="identity",position='stack') +
#theme_bw() +
facet_grid(~Month) +
theme(axis.title.x=element_text(face="bold",size=14),axis.title.y=element_text(face="bold",size=14),axis.text.x=element_text(face="bold",size=10),axis.text.y=element_text(face="bold",size=10))+
ylab("Wind") +
theme(panel.margin = unit(5, "mm"),panel.border=element_rect(color="black",fill=NA),panel.background = element_rect(fill="grey84"),plot.title = element_text (size=20,face="bold"),legend.position="right",panel.grid.minor=element_blank(),strip.text.x=element_text(size=12,face="bold"),strip.background=element_rect(fill=NA,colour="black"),legend.title=element_text(size=14,face="bold")) +
ggtitle("Test")
gt <- ggplot_gtable(ggplot_build(facet))
gt$layout$clip[gt$layout$name=="panel"] <- "off"
grid.draw(gt)
感谢您的帮助!如果您需要任何澄清或有任何问题,请告诉我。
答案 0 :(得分:1)
您有两种选择:
library(grid)
fig_size <- c(6, 4) # inches
margin <- unit(4, "line")
p <- ggplot() + theme(plot.background=element_rect(colour="red", size=2, fill="grey50"),
plot.margin = unit(1:4, "line"))
g <- ggplotGrob(p)
g$vp <- viewport(width = unit(fig_size[1], "in") - margin, height=unit(fig_size[2],"in")- margin)
ggsave("plot.pdf", g, width=fig_size[1], height=fig_size[2])