簡體   English   中英

R:用for -loop和png繪制4x4繪圖,為什么要用1x1繪圖而不是4x4?

[英]R: Plotting 4x4 plot with for -loop and png, why getting 1x1 plot instead of 4x4?

在命令行上嘗試使用4x4繪圖時,我可以使用它,但是在下面的代碼中不能使用for -loop和png元素。 我對問題到底是什么感到沮喪,我已經嘗試了幾個小時才能理解,無法繼續前進。

將下面的代碼復制到paper.Rnw文件后,只需$ R CMD Sweave paper.Rnw$ pdflatex paper.tex$ evince paper.pdf ,您將得到一個1x1的圖,而不是4x4的圖。 為什么?

$ mkdir Pictures
$ mkdir Data
$ cd Data
$ wget https://noppa.aalto.fi/noppa/kurssi/mat-2.3128/harjoitustyot/Mat-2_3128_data_2.xls
$ cd ..
$ cat paper.Rnw

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{graphicx}

\begin{document}

<<echo=FALSE>>=
library(gdata)
f<-read.xls('./Data/Mat-2_3128_data_2.xls')


for(i in 1:ncol(f))
{
    png(paste('./Pictures/CO',i,'.png',sep =''))
    par(mfrow=c(2,2))
    plot(pacf(na.omit(f[,i])), main=paste('Pacf', i))
    plot(acf(na.omit(f[,i])), main=paste('Acf', i))
    plot(na.omit(f[,i]), main=paste('Data', i), type='l')
}
@

\subsection{Time-serie C1}
\includegraphics{./Pictures/CO1.png}
\subsection{Time-serie C2}
\includegraphics{./Pictures/CO2.png}
\subsection{Time-serie C3}
\includegraphics{./Pictures/CO3.png}
\subsection{Time-serie C4}
\includegraphics{./Pictures/CO4.png}
\subsection{Time-serie C5}
\includegraphics{./Pictures/CO5.png}

\end{document}

函數acfpacf具有一個參數plot ,默認為TRUE 因此,不需要plot語句(否則,對於acf您將獲得兩個圖,對於pacf您將獲得兩個圖)。 注意,我還添加了一個dev.off()語句。

這應該工作:

for(i in 1:ncol(f))
{
    png(paste('./Pictures/CO',i,'.png',sep =''))
    par(mfrow=c(2,2))
    pacf(na.omit(f[,i]), main=paste('Pacf', i))
    acf(na.omit(f[,i]), main=paste('Acf', i))
    plot(na.omit(f[,i]), main=paste('Data', i), type='l')
    dev.off()
}
@

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM