R語言基礎包中的繪圖函式——快速用R探索資料
阿新 • • 發佈:2018-12-24
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")