在R繪圖時,有時我們想在一個繪圖區中同時繪制多幅圖。這時,par()函數就派上用場了。
當然實現同一繪圖區繪制多個圖形有多個方法,這里先介紹一下par()函數的使用。
R中的par()函數可以將繪圖區分割成規則的幾個部分。
par()函數的作用主要是查詢或設置繪圖環境的參數。這里主要考慮使用它如何在一個繪圖區繪制多幅圖的情況。
多圖環境用參數mfrow或參數mfcol來設定,如:
par(mforw=c(3,2))
則是在同一繪圖區中繪制3行2列共6個圖形,而且是先按行繪制,即繪制完第1行的2個圖形后,再繪制第2行的2個圖形,最后是第3行的2個圖形。同理,
par(mfcol=c(3,2))
也是繪制3行2列共6個圖形,與上面不同的是,先按列繪制。即先繪制完第1列的3個圖形,再繪制第2列的3個圖形。
par設定的繪圖參數直至退出前都會有效,即使是在某個函數中使用par()設定的參數,也會影響全局的效果,所以如果在繪圖中需要恢復到初始狀態,可以設置臨時變量保存初始環境。在準備恢復時再使用par(臨時變量)的形式恢復到初始狀態。
下面舉例子說明該函數的具體使用方法:
設置一個2×2的多圖窗口,分別繪制 y = sinx, y = cosx, y = 2*sinxcosx和y = tanx的圖像,定義域為[-π,π]
編寫R程序如下:
par(mfrow = c(2, 2))
x <- seq(-pi,pi,by=0.1)
plot(x,sin(x),typ="l")
plot(x,cos(x))
plot(x,2*sin(x)*cos(x))
plot(x,tan(x))
繪圖結果如下:
上圖不是很好看,尤其是最后一幅圖,下面對其改造如下:
par(mfrow = c(2, 2))
x <- seq(-pi,pi,by=0.01)
plot(x,sin(x),type="l",col=2)
plot(x,cos(x),type="l",col="green")
plot(x,2*sin(x)*cos(x),type="l",col="blue")
plot(x,tan(x),type="l",ylim=c(-30,30),col=6)
運行結果如下:
新聞熱點
疑難解答