R語言的graphics功能(畫圖)


        找了好久,終於找到了畫各種統計圖的畫圖工具,那就是R,本文主要介紹R中的各種圖形繪制方法。R中有非常強大的繪圖功能,本文也不能一一列舉,如果想要具體了解,可在R中輸入demo(graphic)或者demo(persp)查看。繪圖函數需要將圖輸出到繪圖設備上,繪圖設備的形式有很多種,可以是窗口,可以是寫入一個jpeg、bmp、tiff等圖片文件格式,具體可用help(device)查看。


1.  打開多個繪圖設備

        前面已經提到,繪圖設備有多重,如果是R中的窗口,可以用函數x11()來打開窗口,雖然x11是在linux下的叫法,但是在windows中也可以用該函數,當然也可以用windows打開;另外如果要打開不同的圖形文件設備,可以用jpeg()/bmp()、tiff()等函數打開不同類型的文件設備。dev.list()可返還當前打開的所有的圖形設備。dev.cur()返回當前的圖形設備,還有dev.set(number)用於激活相應的圖形設備,dev.next(),dev.prev()用於切換。dev.off()用於關閉當前設備,這個函數可以指定設備號來關閉,比如dev.off(1);用graphic.off()可以關閉所有的設備。

 

2. Graphic的分割

        下面介紹的幾個函數可以實現graphic的分割功能,但是這些都不是兼容的(即不能同時使用),

Screen:

        用x11()等函數打開圖形設備之后,就可以使用相應的screen函數了。

        split.screen(c(2,2))該函數用於將screen分成2行2列,標識符按行分別從1到2*2標記,參數向量用於指定每個screen的標識符,注意不能分割太多,會造成圖畫不下的情況。

        split.screen(c(1,2), screen=2)可以將子screen再次進行分割screen這個參數用於指定需要再次分割的標識符。

加下去就是畫圖了

        screen(2)用於選中標識符為2的子屏幕,以后的畫圖函數都在2這個子屏幕中生效,如果2這個子屏幕中已經被畫過了,它會清空已經畫過的。如果不想清空 只需 screen(2, FALSE)即可

        erase.screen(n=) 用於清空指定標識符上的圖形

        close.screen(n, all.screens =FALSE) 關閉屏幕,相當於清空了標識符,因此再也不能定位到相應的屏幕了

 

Layout:

        相比screen函數,還有一個Layout,比screen更加靈活(理論上可以設置出任意的布局),也更加方便。

        layout(mat, widths, heights):mat用於划分整個布局,如果mat中兩塊數字相同則布局顯示時候會將那兩塊顯示在一起。Widths和heights都是一個向量,長度分別和列數和行數相同,用來表示每一塊列或者行的相對長度。如果要用絕對的,可用lcm(5)這個函數,返回5cm

        layout.show(n)用來顯示子窗口的個數。

        在畫圖的時候,Layout中默認是bycolonm的,即畫圖時候,先畫a[1,1].再a[1,2],再a[2,1]a[2,2],如果要a[1,1]之后是a[1,2]只要在matrix這個參數中指定byrow=TRUE即可。

 

3. 繪圖函數

        高級繪圖函數:



> mat <- matrix(c(1:4), 2, 2)
> layout(mat)
> plot(1:10)
> text(5, 5, labels = "plot(1:10)")
> 
> plot(1:10, cos(1:10))
> text(5, 5, labels = "plot(1:10, cos(1:10))")
> 
> sunflowerplot(1:10, 1:10)
> 
> pie(c(0.1, 0.2, 0.3, 0.4))

                                                                                      

> x11()
> layout(mat)
> boxplot(1:10)
> stripchart(1:10)

                                                                                           

> x = 1:10
> y = 3:12
> z = x + y
> coplot(x~y|z)

                                                                                            

        好多函數啊!!!脖子酸了!!就不一一列舉了,因為暫時還用不到,以后等用到了再貼進來吧!!

 

低級繪圖函數:




4. 繪圖參數

        繪圖參數可以作為圖形函數的參數來指定相應的屬性,這里來介紹一個另外的方法,par();

        Par這個函數有如下參數,可以修改圖形中的不同的屬性:

                                                                                                                                                                         


       繪圖參數和低級作圖函數使我們可以進一步改善圖形。前面我們已經看到,一些繪圖參數不允許作為plot這樣的函數的自變量。我們可以用par()修改這些參數,這樣就必須輸入多行的命令。在改變繪圖參數時,預先保存它們的初始值以便以后恢復十分有用,如下:


opar <- par()
par(bg="lightyellow", col.axis="blue", mar=c(4, 4, 2.5, 0.25))
plot(x, y, xlab="Ten random values", ylab="Ten other values",
	xlim=c(-2, 2), ylim=c(-2, 2), pch=22, col="red", bg="yellow",
	bty="l", tcl=-.25, las=1, cex=1.5)
title("How to customize a plot with R (bis)", font.main=3, adj=1)
par(opar)

        R的graphics就介紹到這里,待實際使用的時候再慢慢去領悟。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM