从grid.draw保存图例,图例旁边不留空格

从grid.draw保存图例,图例旁边不留空格,r,ggplot2,R,Ggplot2,我想把这个传说从情节中删去: a<-rnorm(100) b<-runif(100) ba<-cbind(a,b) colnames(ba)<-c("a","b") ba<-melt(ba,id.vars=1:1) colnames(ba)<-c("c","variable","value") plot1<-ggplot(q,aes(x=c,y=value,colour=variable,size=variable))+geom_point()+them

我想把这个传说从情节中删去:

a<-rnorm(100)
b<-runif(100)
ba<-cbind(a,b)
colnames(ba)<-c("a","b")
ba<-melt(ba,id.vars=1:1)
colnames(ba)<-c("c","variable","value")
plot1<-ggplot(q,aes(x=c,y=value,colour=variable,size=variable))+geom_point()+theme(legend.position="right")

a
gg我认为使用
pdf
png
确实有效
ggsave
可能不起作用,因为
grid.draw
的输出不是一个ggplot对象。对,但是我应该在pdf后面放什么?pdf(网格绘制(图例))?或者怎么做?
pdf(“filename.pdf”)
,然后是所有的绘图命令,然后是
dev.off()
谢谢,这太棒了。请参阅我的编辑。我添加了一个可复制的示例,并指定了一个进一步的问题。现在情况好多了,但还有很多空间。
?theme
你需要自己做一些谷歌搜索和腿部工作。就像我建议的
pdf
。如果你不知道如何使用它,至少试试
?pdf
。图例页边距有问题,有些是不可自定义的(请参阅github问题跟踪程序)。
g_legend<-function(a.gplot){
tmp <- ggplot_gtable(ggplot_build(a.gplot))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
return(legend)}


legend<-g_legend(plot1)
gg <- gtable::gtable_filter(x=ggplotGrob(plot1), 
               pattern="guide", trim=TRUE)[["grobs"]][[1]][["grobs"]][[1]]

pdf("legend.pdf", 
    width=convertWidth(sum(gg$width), "in", valueOnly=TRUE),
    height=convertHeight(sum(gg$heights), "in", valueOnly=TRUE))
grid.draw(gg)
dev.off()