1. 程式人生 > >R語言基礎包中的繪圖函式——快速用R探索資料

R語言基礎包中的繪圖函式——快速用R探索資料

library(ggplot2)

#R語言中的基礎包所帶的繪圖函式雖然用起來相對ggplot2包不是那麼友好
#但在剛拿到原始資料時進行快速探索還是很方便的


####散點圖
#運用plot()函式,向函式傳入一個x向量和一個y向量
plot(mtcars$wt,mtcars$mpg)
#等價於
qplot(wt,mpg,data = mtcars)
#等價於
ggplot(data = mtcars,mapping = aes(x = wt,y = mpg)) + geom_point()


####折線圖
#同樣運用plot()函式,向函式傳入一個x向量和一個y向量,同時傳入引數type = "l"
plot(pressure$temperature,pressure$pressure,type = "l")
#繼續向圖中新增資料點和折線
points(pressure$temperature,pressure$pressure)
lines(pressure$temperature,pressure$pressure/2,col = "red")
points(pressure$temperature,pressure$pressure/2,col = "red")
#等價於
qplot(pressure$temperature,pressure$pressure,geom = c("line","point"))
#等價於
ggplot(data = pressure,mapping = aes(x = temperature,y = pressure)) + geom_line() + geom_point()


####條形圖
#使用barplot()函式,並向其傳遞兩個向量作為引數,第一個向量用來設定條形的高度
#第二個向量用來設定每個條形對應的標籤(可選)
barplot(BOD$demand,names.arg = BOD$Time)
#生成頻數表
barplot(table(mtcars$cyl))
#qplot()繪製條形圖
#qplot(factor(BOD$Time),BOD$demand,geom="bar",stat="identity")   這裡stat引數有問題
#等價於
ggplot(data = BOD,aes(Time,demand)) + geom_bar(stat = "identity")
#頻數條形圖
ggplot(data = mtcars,aes(x = cyl)) + geom_bar()


####直方圖
#使用hist()函式,通過breaks引數指定大致組距
hist(mtcars$mpg,breaks = 10)
#等價於
ggplot(data = mtcars,aes(x = mpg)) + geom_histogram(binwidth = 4)


####箱線圖
#使用plot()函式,當x為因子變數(與數值變數對應時),預設繪製箱線圖
plot(ToothGrowth$supp,ToothGrowth$len)
#使用公式語法
boxplot(len ~ supp,data = ToothGrowth)
#在x軸引入兩變數的互動
boxplot(len ~ supp + dose,data = ToothGrowth)
#用qplot()繪製箱線圖
qplot(ToothGrowth$supp,ToothGrowth$len,geom = "boxplot")
#等價於
ggplot(data = ToothGrowth,mapping = aes(x=supp,y=len)) + geom_boxplot()
#使用三個獨立的向量引數
qplot(interaction(supp,dose),len,data = ToothGrowth,geom = "boxplot")
#等價於
ggplot(data = ToothGrowth,mapping = aes(x=interaction(supp,dose),y=len)) + geom_boxplot()


####繪製函式影象
#使用curve()函式繪製,傳入一個關於變數x的表示式
curve(x^3 - 5*x,from = -4,to = 4)
#自定義函式影象
my_fun <- function(xvar){
  1/(1 + exp(-xvar + 10))
}
curve(my_fun(x),from = 0, to = 20)
#新增直線
curve(1 - my_fun(x),add = TRUE,col = "red")
#等價於
#qplot(c(0,20),fun = my_fun,stat = "function",geom = "line")
#等價於
ggplot(data.frame(x=c(0,20)),aes(x=x)) + stat_function(fun = my_fun,geom = "line")