R有強大的繪圖功能,R提供的繪圖函數可以分為三種基本類型:高水平繪圖函數、低水平繪圖函數和交互式繪圖函數。
高水平繪圖函數是一類能夠直接創建圖形的函數,該類函數可以自動生成坐標軸、坐標刻度、標題等元素。
在高水平繪圖函數中,plot()函數是一種常用的繪圖函數,用其可以繪制散點圖、曲線圖等。
R語言中plot()函數的基本格式如下:
plot(x,y,...)
plot函數中,x和y分別表示所繪圖形的橫坐標和縱坐標;
函數中的...為附加的參數。
plot函數默認的使用格式如下:
plot(x, y = NULL, type = "p", xlim = NULL, ylim = NULL,
log = "", main = NULL, sub = NULL, xlab = NULL, ylab = NULL,
ann = par("ann"), axes = TRUE, frame.plot = axes,
panel.first = NULL, panel.last = NULL, asp = NA, ...)
其中,
(1)type為一個字符的字符串,用于給定繪圖的類型,可選的值如下:
"p":繪點(默認值);
"l":繪制線;
"b":同時繪制點和線;
"c":僅繪制參數"b"所示的線;
"o":同時繪制點和線,且線穿過點;
"h":繪制出點到橫坐標軸的垂直線;
"s":繪制出階梯圖(先橫后縱);
"S":繪制出階梯圖(先縱后豎);
"n":作空圖。
(2)main參數
字符串,給出圖形的標題;
(3)sub參數
字符串,給出圖形的子標題
(4)xlab參數
字符串,用于給出x軸的標簽。
(5)ylab參數
字符串,用于給出y軸的標簽。
(6)xlim參數
二維向量,表示x軸的范圍。
(7)ylim參數
二維向量,表示y軸的范圍。
下面舉幾個簡單的例子用來說明:
(1)繪制簡單的一個點
plot(10,10) #直接給出數據
結果如下圖:
圖1
#使用變量的情況
x<-10
y<-10
plot(x,y)
繪圖結果如下:
圖2
(2)繪制一條線
x<-c(20,30)
y<-c(40,50)
plot(x,y)
結果如下:
圖3
(3)使用參數l——繪制一條直線
plot(x,y,'l')
結果如下:
圖4
(4)使用參數b——同時繪制點和線,線不穿過點
plot(x, y, 'b')
結果如下:
圖5
(5)使用參數c——僅繪制出參數為b時所示的直線
plot(x, y, "c")
結果如下圖所示:
圖6
對比圖4,圖5,圖6可知,圖4的線是直接從兩個點的坐標開始的,圖5中包括圈點和直線,而直線到圈點外,圖6是在圖5的基礎上,將點去掉而已。
(6)使用參數o
plot(x, y, "o")
結果如下圖:
圖7
(7)使用參數h
plot(x, y, "h")
結果如下:
圖8
(8)使用參數s——階梯圖,先橫再縱
plot(x, y, "s")
結果如下圖所示:
圖9
(9)使用參數S
plot(x, y, "S")
結果如下圖所示:
圖10
(10)使用main參數、xlab,ylab的情形
plot(x, y, "l",main="plot函數繪圖演示",xlab="x值",ylab="y值")
結果形式如下:
圖11
(11)xlim、ylim參數的使用
plot(x,y,xlim=c(10,50),ylim=c(10,50))
結果形式如下:
圖12
即x軸的坐標范圍為10~50,y軸的坐標范圍為:10~50
最后再舉一個例子:使用plot函數繪制散點圖
假設對10戶居民家庭的月可支配收入和消費支出進行調查,得到的原始資料如下:請繪制散點圖。
編號 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
消費支出 | 20 | 15 | 40 | 30 | 42 | 60 | 65 | 70 | 53 | 78 |
可支配收入 | 25 | 18 | 60 | 45 | 62 | 88 | 92 | 99 | 75 | 98 |
繪制散點圖
x<-c(25,18,60,45,62,88,92,99,75,98) #定義向量x保存可支配收入
y<-c(20,15,40,30,42,60,65,70,53,78) #定義向量y保存消費支出
#繪制散點圖
plot(x,y,xlab="可支配收入",ylab="消費支出",main="消費支出與可支配收入的散點圖")
如下圖所示:
新聞熱點
疑難解答