1. 程式人生 > >R語言畫圖時常見問題

R語言畫圖時常見問題

1 如何在同一畫面畫出多張圖?

修改繪圖引數,如 par(mfrow = c(2,2)) 或 par(mfcol = c(2,2));

par():mar設定圖離四個邊緣的距離;bg設定背景顏色;xaxt和yaxt設定座標軸標籤的型別(=”n”表示不畫軸標籤);xlim和ylim設定座標軸的範圍。

更為強大功能的 layout函式,它可以設定圖形繪製順序和圖形大小;

split.screen()函式。

2 如何設定圖形邊緣大小

修改繪圖引數 par(mar = c(bottom, left, top, right)),bottom, left, top, right 四個引數分別是距離 bottom, left, top, right 的長度,預設距離是 c(5, 4, 4, 2) + 0.1。或者修改繪圖引數 par(mai =c(bottom, left, top, right)),以英寸為單位來指定邊緣大小。

3 如何在已有圖形上加一條水平線

使用低水平繪圖命令 abline(),它可以作出水平線(y 值 h=)、垂線(x 值 v=)和斜線(截距 a=, 斜率 b=) 。R中的繪圖命令可以分為高水平(High level) 、 低水平 (Low level) 和互動式(Interactive)三種繪圖命令。簡要地說,高水平繪圖命令可以在圖形裝置上繪製新圖;低水平繪圖命令將在已經存在圖形上新增更多的繪圖資訊,如點、線、多邊形等;使用互動式繪圖命令建立的繪圖,可以使用如滑鼠這類的定點裝置來新增或提取繪圖資訊。在已有圖形上新增資訊當然要使用 低水平繪圖命令。

4 如何加圖例?

繪製圖形後,使用 legend函式,help("legend")

5 R 如何做雙座標圖?

在 R 中可以通過繪圖引數 par(new = TRUE)使得繪製第二個繪圖 (hight-level plot) 時保留第一個繪圖區域,這樣兩張繪圖會重疊在一起,看起來就是雙座標圖。

6 如何為繪圖加入網格?

使用 grid() 函式

7 如果繪圖時標題太長,如何換行?

可以使用 strwrap 函式,這個函式可以將定義段落格式。

plot ( 0 ,main = paste (strwrap ("This is a really long title that i can not type it properly" , width = 50 ) ,collapse= "\n"))

9 怎樣將 R 的顏色同 RGB 對應起來?

參考函式 col2rgb()

10 如何調整所繪圖形的大小?

Windows 平臺下,正常情況開啟繪圖視窗,調整視窗大小,點選選單直接儲存,或使用 savePlot()

函式儲存;當然也可以事先用windows ( width = , height = )

開啟一個定義好大小的視窗,然後繪圖;還可以使用 pdf() ,postscript() , png() ,jpeg() ,pictex() 等“後臺生成” 函式,這些函式都有設定圖形大小的引數。

11 在 word 裡如何使用 R 生成的高質量繪圖?

向量繪圖的效果是最好的,比如 eps、pdf,而不是點陣圖(png、jpg、tiff等)。在 word 裡面,可以使用 eps,雖然在螢幕上顯示不是很好,但列印效果卻不錯。

12畫圖時的引數

axis():las設定座標軸標籤的方式(水平,垂直……)。
mtext():為四個座標軸新增標籤。
text():在給定座標的位置寫字。
lines():lty設定線的型別;lwd設定線的寬度。
points():pch設定點的型別。
plot():最簡單的畫圖函式。type設定畫圖的型別(type=”n”表示不畫資料);axes設定是否畫座標軸。常用的引數還有:xlim和ylim,xaxt和yaxt。
barplot():space設定bar圖間的間距;horiz設定bar的方向是垂直或水平;beside設定height為矩陣時,每列元素的bar排列方式;add設定是否將barplot加在當前已有的圖上。

13ggplot2包是強大的繪圖包。多多練習!!!