close

R是一個也是個很強大的繪圖軟體

但剛入門的話就先學最基本的吧

這篇要畫的是點狀圖

使用的資料集是內建資料集”Orange”

如果想要知道R內建有哪些資料集可以輸入

 

> library(help = "datasets")

 

對哪一個資料及有興趣就輸入?”,像是

> ?Orange

 

這個資料集是紀錄橘子樹的生長紀錄

變數有三個: “Tree”, “age”, “circumference

Tree: 測量時影響的因素,使用1-5代表。

age: 橘子樹的樹齡(天數)

circumference: 樹幹周長(mm)

 

好啦進入本次主題畫出x軸是樹幹周長,y軸是樹齡的點狀圖,並以影響因素標記

我會盡量使用”par”這個function的參數,可以參考自己所需即可。

有興趣一樣可以用?par去看所有可調參數。

 

首先做出界定出圖的邊界

> par("mar")
[1] 5.1 4.1 4.1 2.1
 
#上面語法意義是告訴我們邊界的長度,下5.1;左4.1;上4.1;右;2.1
我們來調整成4433

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

 

11.png

plot(Orange$circumference, Orange$age,type="n") 
 
#x軸為Orangeagey軸為Orange中的circumferencetype=”n”代表不要將觀測值畫出來所以會得到一張空白的圖,之後我們再慢慢加上需要的數值。
 
再來要將數值加上去,先加上Tree=1時的數值
 
points(Orange$circumference[Orange$Tree=="1"],Orange$age[Orange$Tree=="1"],col="blue",pch=3)
 
# points的功能是將數值以點呈現
Orange$circumference[Orange$Tree=="1"]這段意思是取Orange這個資料集中的circumference的觀測值且Tree等於1
Col代表上點的顏色,可以使用HEX代碼
找了一個網站可以玩玩看
https://htmlcolorcodes.com/zh/
 
Pch為點的樣式

下圖是
Pch輸入的樣式選項

22.png

其餘四個就以此類推囉

points(Orange$circumference[Orange$Tree=="2"],Orange$age[Orange$Tree=="2"],col="#A93226",pch=4)
points(Orange$circumference[Orange$Tree=="3"],Orange$age[Orange$Tree=="3"],col="#7DCEA0",pch=5)
points(Orange$circumference[Orange$Tree=="4"],Orange$age[Orange$Tree=="4"],col="green",pch=6)

points(Orange$circumference[Orange$Tree=="5"],Orange$age[Orange$Tree=="5"],col="yellow",pch=7)

還可以幫這張圖上趨勢線

fit <-lm(Orange$age ~Orange$circumference)
abline(fit,lwd=3,col="#6C3483")

#lm給出最適線性曲線,先放y軸在x軸,fit <-lm(y ~x)

abline功能為加上該線條

 

在右下角加上圖例

legend("bottomright", legend = c("1", "2","3","4","5") , col = c("blue" ,"#A93226","#7DCEA0","green","yellow" ) , pch = c(3:7))

 

寫上這張圖的標題

title("Growth of Orange Trees",col="blue")

 

輸出這張圖

可以使用pdf, postscript, xfig, png, jpeg, bitmap,bmp等格式

以輸出成png檔為範例

 

png("Growth of Orange Trees.png",width=600, height=600)

 #上面代表要以png格式輸出,檔名為Growth of Orange Trees.png,大小為長寬各600

下面就輸入繪圖的指令(就是上面演示的所有語法)

 

畫完之後輸入

dev.off()

 

#代表結束繪製並關掉輸出裝置

 

Growth of Orange Trees.png

 

 

arrow
arrow

    猛犬 發表在 痞客邦 留言(0) 人氣()