2012-12-11 100 views
2

我試圖導出多個數據面板和1個繪圖作爲單個圖像使用.png設備或。 pdf設備,我不會見任何成功。我可以使用R原生繪圖設備在R中生成我想要的圖像,但是當我嘗試直接生成相同的圖像時,我得到的結果是我不期望的。將多個面板和數據面板導出到* .png(在樣式佈局中()在R內工作)

這裏是我的示例代碼

testMat <- matrix(1:20, ncol = 5)## create data 
testMatDF <- as.data.frame(testMat) 
names(testMatDF) <- c("Hey there", "Column 2", 
     "Some * Symbols", "And^More", 
     "Final Column") 
rownames(testMatDF) <- paste("Group", 1:4) 

library(gplots) ## gplots needed for textplot() 
layout(matrix(c(1, 1, 2, 3, 3, 3), 2, 3, byrow = TRUE)) 
curve(dnorm, -3, 4) 
textplot(testMat) 
textplot(testMatDF) 
## produces what I want within R 

layout(matrix(c(1, 1, 2, 3, 3, 3), 2, 3, byrow = TRUE)) 
png(file='plot1.png') 
curve(dnorm, -3, 4) 
textplot(testMat) 
textplot(testMatDF) 
dev.off() 
## only the last function texplot(testMatDF) gets output, not what I anticipated 

我也試過mfrow()圖形參數沒有成功。

par(mfrow= c(3, 1)) 
png(file='plot2.png') 
curve(dnorm, -3, 4) 
textplot(testMat) 
textplot(testMatDF) 
dev.off() 
## only the last function texplot(testMatDF) gets output 

回答

11

如果你打開你的圖形設備後移至parlayout您的來電,它應該正常工作。

png(file='plot2.png') 
par(mfrow= c(3, 1)) 
curve(dnorm, -3, 4) 
textplot(testMat) 
textplot(testMatDF) 
dev.off() 
+0

非常感謝!!!完美工作! – Chris

+0

@Chris很高興聽到它。 FWIW,在開始繪圖之前,您的設備需要打開,包括畫布的佈局。另外,當你使用其他繪圖工具時,你可能會發現你需要'print()',特別是'ggplot2'(不要和'gplots'混淆)。 – Justin

+0

是的。但願如此!這是一個艱苦教訓。乾杯! – Chris