を使用して複数のプロットをプロットしggplot2
、を使用してそれらを配置しようとしていますgrid.arrange()
。私が持っている正確な問題を説明している誰かを見つけることができたので、リンクの問題の説明から引用しました:
私が使用したggsave()
後grid.arrange()
、すなわち
grid.arrange(sgcir1,sgcir2,sgcir3,ncol=2,nrow=2) ggsave("sgcirNIR.jpg")
グリッドプロットは保存しませんが、最後の個別のggplotを保存します。grid.arrange()
を使用して、ggsave()
または同様のものを表示して
、実際にプロットを保存する方法はありますか?古い方法を使用する以外
jpeg("sgcirNIR.jpg") grid.arrange(sgcir1,sgcir2,sgcir3,ncol=2,nrow=2) dev.off()
同じリンクは以下の解決策を提供します:
require(grid)
require(gridExtra)
p <- arrangeGrob(qplot(1,1), textGrob("test"))
grid.draw(p) # interactive device
ggsave("saving.pdf", p) # need to specify what to save explicitly
ただし、linkから取得した次のコードでggsave()
は、grid.arrange()
呼び出しの出力を保存する方法を理解できません。
library(ggplot2)
library(gridExtra)
dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
p1 <- qplot(carat, price, data=dsamp, colour=clarity)
p2 <- qplot(carat, price, data=dsamp, colour=clarity, geom="path")
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(p1)
lwidth <- sum(legend$width)
## using grid.arrange for convenience
## could also manually push viewports
grid.arrange(arrangeGrob(p1 + theme(legend.position="none"),
p2 + theme(legend.position="none"),
main ="this is a title",
left = "This is my global Y-axis title"), legend,
widths=unit.c(unit(1, "npc") - lwidth, lwidth), nrow=1)
# What code to put here to save output of grid.arrange()?
print(ggplot())
ますか?
ggplot
を使用して1つを保存するggsave()
と、画像の解像度がはるかに高くなります。で出力をgrid.arrange()
単一のプロットで保存した場合と同様に、の出力を高解像度で保存する方法はありggsave()
ますか?たとえばオプションを指定png(...,height=1600, width=2500)
すると、画像が非常にぼやけて見えます。
png(); grid.arrange(); ggplot(); ggplot(); dev.off()