這次我們簡單介紹下R的基礎作圖函數,基礎作圖可以做出比較個性化的東西,比較靈活
axis
對于基礎作圖,我們可以自定義它的坐標軸,常用的的函數是axis(),我們不妨看看它的幫助文檔
先介紹幾個參數:
- side,代表坐標軸位置(1:下,2:左,3:上,4:右)
- at,代表刻度線位置(數值型向量)
- labels,刻度的標簽,字符型向量
- pos,兩條刻度線相交的位置
x <- seq(-4, 4, 0.01)
y <- x^2
plot(x, y, ann = F, bty = "n", xaxt = "n", yaxt ="n")
#將原圖的坐標軸去除,bty控制坐標軸是否出現
m=seq(-4,4,1)
n=seq(0,20,2)
axis(1, at=m, pos = 0,col.axis="black", cex.axis=0.7,las=0,tck=-0.015)
axis(2, at=n, pos = 0, col.axis="black", cex.axis=0.7,las=2,tck=-0.015)
加坐標軸前
加坐標軸后
text
這一個是控制圖例標簽的函數
我們來看個例子
plot(c(0:5), col = 'white')
text(2,4, labels = 'font=1:正常字體(默認)', font = 1)
text(2,5, labels = 'font=2:粗體字體',font = 2)
對于text()來說,其最大的功能是為我們的圖加圖例,或者做一些分類標記
- 前面的數字代表圖例的坐標位置
- labels是圖例的內容
- font是字體大小
par
par()函數的目的是優化圖形的參數,我們通過幫助文檔可以看到
這幾個參數是par()函數獨有的,參數比較多,我就挑幾個我常用的來做例子
1.設置背景顏色
par(bg="red")
plot(1:100)
2. 多圖
有的時候,我們往往想要在一幅圖上畫多個小圖
par(mfrow=c(1,2))
plot(1:10)
title("plot(1:10)",adj=0)
plot(1:4)
title("plot(1:4)",adj=1)
其中mfrow=c(1,2),前面的1代表縱向放一張圖,后面的2代表橫向放2張圖,一共一頁放2張圖
或者利用參數fig參數來進行圖形定位
par(fig=c(0.5,1,0.5,1))
plot(1:3)
par(fig=c(0,0.5,0,0.5))
plot(1:3)
其中數字代表圖形的頁面坐標位置
abline
這個常用的是加線處理
plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
abline(h = 0, v = 1, col = "gray60")
#h代表縱軸位置,v代表很皺位置
常見基礎作圖函數
有關基礎畫圖的函數實在是太多了
有需要的同學可以看看他們的說明文檔
基礎作圖美化
當然也有人開發了用于美化的包basetheme
library(basetheme)
basetheme("brutal")
plot(hclust(dist(USArrests), "ward.D2"), hang = -1)
美化前
美化后
是不是很贊呢?
另外一種美化就是使用調色板來美化
(1)palette()
利用palette()函數來篩選可用的顏色
palette()
## [1] "black" "red" "green3" "blue" "cyan" "magenta" "yellow"
## [8] "gray"
(2)rgb()
這個函數的基本色是紅,綠,藍,利用不同數字來進行調色
col = c(rgb(1, 0, 0), rgb(0, 1, 0), rgb(0, 0, 1))
rgb有三個參數,分別是紅,綠,藍,數值代表這三個顏色的程度
(3)rainbow/RColorBrewer
rainbow(1000)是比較常用的,上面顏色很多,可供選擇
rainbow(1000)
RColorBrewer則是一個R包,在上面可以選擇顏色
RColorBrewer
當然作圖是一個長期積累的過程,如果文獻中右好看的圖,不妨“盜用”下他們的代碼學習學習
參考:http://blog.sina.com.cn/s/blog_6caea8bf0100yk4h.html
http://www.lxweimin.com/p/a716db5d30ef