从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")
agg我认为使用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()