第三章 圖形初階

3.1 使用圖形

3.1.1圖形創建

mtcars是系統內置函數

在R中,圖形通常都是以這種互動式的風格繪製的

3.1.2圖形保存

A.使用代碼實現

將繪圖語句夾在開啟目標圖形設備的語句和關閉目標圖形設備的語句之間即可

pdf("mygraph.pdf") 加上圖形創建代碼,再加上 dev.off()即可

還可以使用函數 win.metafile() 、 png() 、 jpeg() 、 bmp() 、 tiff() 、 xfig()和 postscript() 將圖形保存為其他格式。

圖形保存到當前工作目錄中

B.使用菜單操作(windows平台)

3.1.3圖形查看

也可使用代碼打開新的窗口

3.2一個簡單的例子(見3.1.3圖形查看

3.3圖形參數

3.3.1符號和線條

3.3.2顏色

install.packages("RColorBrewer")

library(RColorBrewer)

n <- 7

mycolors <- brewer.pal(n, "Set1")

barplot(rep(1,n), col=mycolors)

3.3.3 文本屬性

3.3.4 圖形尺寸與邊界尺寸

3.4 添加文本、自定義坐標軸和圖例

3.4.1 標題

3.4.2 坐標軸

3.4.3 參考線

函數 abline() 可以用來為圖形添加參考線。其使用格式為:

abline(h=yvalues, v=xvalues)

3.4.4 圖例

3.4.5 文本標註

3.4.6 數學標註

最 後 , 你 可 以 使 用 類 似 於 TeX 中 的 寫 法 為 圖 形 添 加 數 學 符 號 和 公 式 。 請 參 閱

help(plotmath) 以獲得更多細節和示例。要即時看效果,可以嘗試執行 demo(plotmath) 。

部分運行結果如圖3-13所示。函數 plotmath() 可以為圖形主體或邊界上的標題、坐標軸名稱

或文本標註添加數學符號。

3.5 圖形的組合

邊界上添加了兩幅箱線圖的散點圖

4.關於layout的幫助文檔

def.par <- par(no.readonly = TRUE) # save default, for resetting... 保存默認設置利於還原

## divide the device into two rows and two columns 把圖形顯示區域劃分為2行2列

## allocate figure 1 all of row 1允許圖1佔據第一行的位置

## allocate figure 2 the intersection of column 2 and row 2 把圖2放在第二行第二列

layout(matrix(c(1,1,0,2), 2, 2, byrow = TRUE))

## show the regions that have been allocated to each plot

layout.show(2)

## divide device into two rows and two columns

## allocate figure 1 and figure 2 as above

## respect relations between widths and heights

nf <- layout(matrix(c(1,1,0,2), 2, 2, byrow = TRUE), respect = TRUE)

layout.show(nf)

## create single figure which is 5cm square 創建一個單獨的圖(5*5的一個正方形)

nf <- layout(matrix(1), widths = lcm(5), heights = lcm(5))

layout.show(nf)

##-- Create a scatterplot with marginal histograms -----

x <- pmin(3, pmax(-3, stats::rnorm(50)))

y <- pmin(3, pmax(-3, stats::rnorm(50)))

xhist <- hist(x, breaks = seq(-3,3,0.5), plot = FALSE)

yhist <- hist(y, breaks = seq(-3,3,0.5), plot = FALSE)

top <- max(c(xhist$counts, yhist$counts))

xrange <- c(-3, 3)

yrange <- c(-3, 3)

nf <- layout(matrix(c(2,0,1,3),2,2,byrow = TRUE), c(3,1), c(1,3), TRUE) #c(3,1), c(1,3),表示寬度為3:1,高度為1:3

layout.show(nf)

par(mar = c(3,3,1,1))

plot(x, y, xlim = xrange, ylim = yrange, xlab = "", ylab = "")

par(mar = c(0,3,1,1))

barplot(xhist$counts, axes = FALSE, ylim = c(0, top), space = 0)

par(mar = c(3,0,1,1))

barplot(yhist$counts, axes = FALSE, xlim = c(0, top), space = 0, horiz = TRUE)

par(def.par) #- reset to default

nf <- layout(matrix(c(1,2,3,4),2,2,byrow = TRUE), c(3,1), c(1,3), TRUE)#相當於矩陣中的數字表示某一行某一列有沒有圖表

layout.show(nf)

為了探求layout 中matrix(c(1,2,3,4)矩陣中數字和有沒有圖表的含義,查了幫助文檔作了相關驗證,終於有所體會,感覺挺爽!

周榮技 二零一七年三月六日 於 深圳 龍崗


推薦閱讀:

TAG:大数据 | 数据分析 |