R語言繪圖佈局實例講解

在R語言中,par 函數可以設置圖形邊距,其中oma 參數設置outer margin, mar 參數設置margin,

這些邊距有什麼不同呢,通過box函數可以直觀的看到

box 默認在當前圖形繪制邊框,第一個參數which = “plot”, 所以在當前圖形上繪制邊框

which 的值除瞭plot 之外,還可以選擇 figure, inner, outer

接下來分別用不同的值測試一下,為瞭區分,為不同的邊框設置不同的顏色和類型,代碼如下:

attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
box(which = "plot", col = "red", lwd = 2)
box(which = "figure",col = "blue", lwd = 4)

為瞭區分,plot的邊框為 紅色, figure 的邊框為 藍色,效果如下:

可以看出,在figure 區域中包含瞭plot 區域, plot 區域指的是實際繪圖中的坐標系內的區域,裡面是坐標系中的點,線等元素,而在figure 和 plot 區域之間的是坐標軸的刻度,x軸和y中的標簽,title 等元素

在紅色的邊框和藍色的邊框之間的區域就是inner margin, 如果inner margin 太窄會發生什麼,用一個實際的例子看一下

par(oma=c(1,1,1,1), mar=c(2,2,2,2))
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
box(which = "plot", col = "red",  lwd = 2)
box(which = "figure",col = "blue",  lwd = 4)

效果如下:

可以看到,坐標軸對應的標題沒有瞭,通過mar 參數設置瞭inner margin 的寬度,由於都是1,太窄瞭,所以坐標軸的標題沒顯示出來,下次遇到類似的問題,就知道因該將inner margin 設置的大一些

mar 參數的值是一個長度為4的向量,分別對應下,左,上,右 4個方向的inner margin, 隻需要記住第一個對應的是下,然後沿逆時針方向設置就可以瞭;

解決瞭inner margin 的問題,那麼outer margin 有是怎麼一回事呢?

在figuer 區域和我們整個繪圖設備之間,其實還有一個邊距,這個邊距就是outer margin, 隻不過默認值都是0,所以看不到

接下來我們用oma 參數設置outer margin 的值,將其設置的寬一點,然後再用box 標記出outer 邊框和figure 邊框,直觀的看一下,代碼如下:

par(oma=c(2,2,2,2))
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
box(which = "plot", col = "red",  lwd = 2)
box(which = "figure",col = "blue",  lwd = 4)
box(which = "outer", col = "black", lty = 8)

圖中虛線對應的就是outer 邊框,在outer 和 figure 邊框之間的就是 outer margin , 通過oma 參數的值來設置outer margin 的寬度,和mar 類似,也是從下方開始,沿著逆時針方向進行設置

通過上面的幾個例子,我們就可以看到,在R語言中,在一個繪圖設備上有3個不同的邊框,最外圈為outer 邊框,可以看作整張紙的邊沿,而中間的figure 邊框才是繪制圖形的地方,通過par 函數的oma 參數控制figure 區域的大小;

plot 區域繪制的是坐標系中的元素,在plot 區域和figure 邊框之間的inner margin 用來放置坐標軸刻度,標題等元素,通過par 函數的mar 參數可以設置其大小

到此這篇關於R語言繪圖佈局實例講解的文章就介紹到這瞭,更多相關R語言繪圖佈局內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: