मैं कई भूखंडों का उपयोग करने की कोशिश कर रहा हूं 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
हालाँकि, मैं यह पता नहीं लगा सकता कि निम्नलिखित कोड में कॉल 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
का उपयोग करके बचत करता हूं ggsave()
, तो छवि का रिज़ॉल्यूशन बहुत अधिक होता है। क्या grid.arrange()
एक उच्च रिज़ॉल्यूशन के साथ आउटपुट को बचाने का एक तरीका है , जैसे कि यह होगा कि क्या एक सिंगल प्लॉट के साथ बचाया गया था ggsave()
? यदि मैं उदाहरण के लिए विकल्प प्रदान करता हूं png(...,height=1600, width=2500)
तो छवि बहुत धुंधली दिखती है।
png(); grid.arrange(); ggplot(); ggplot(); dev.off()