(Day15)基本繪圖功能與資料快速瀏覽(上)
開始進入了繪圖的功能,首先要說明的是,常在資料處理與作業過程,常需要快速的瀏覽資料的樣式或是分布,以便能繼續的處理資料,這時候,往往有個可以快速呈現資料圖表的工具,能加快處理的作業。
往往這類的繪圖,重點都放在能即時的提供結果瀏覽與判定,樣式與視覺化上的美觀,可能就不是重點。
本篇旨在強調實作的演示,將採用R中內建的資料集當作實作的資料來源。
暫列出常用的幾個資料集,官方的說明,也常以此為範例,多點了解也是好事。
View(mtcars) #車輛諸元紀錄
View(diamonds) #鑽石資料
View(iris) #花卉紀錄
View(pressure) #溫度與壓力紀錄關聯
View(BOD)
View(ToothGrowth)
class(BOD)
View(NBA1516) #內建NBA資料集 欄位較多
View(economics) #內建資料集 筆數較多 有日期欄位
程式上,本篇會有函數qplot()說明,套件ggplot2,還是叫用先。
library(ggplot2)
根據散佈圖-MBA智庫百科,用以判定資料之間,是否有相關聯性。大致為:
#Scatter Plot
qplot(mtcars$wt, mtcars$mpg)
qplot(wt,mpg,data=mtcars)
根據折線圖-MBA智庫百科,用以判定數據資料變化的趨勢。
#Line Graph
plot(pressure$temperature, pressure$pressure, type="l")
points(pressure$temperature, pressure$pressure)
qplot(temperature, pressure,data=pressure,geom = "line")
# Lines and points together
plot(pressure$temperature, pressure$pressure, type="b")
qplot(temperature, pressure, data=pressure, geom=c("line", "point"))
線加點
根據直條圖-MBA智庫百科直條圖一般適用於內容較為獨立,缺乏連續性的數量資料,用來表示有關數量的多少,特別適合於對各數量進行對比
#bar char
barplot(table(diamonds$color))
根據直方圖-MBA智庫百科直方圖又稱質量分佈圖,是一種幾何形圖表,它是根據從生產過程中收集來的質量數據分佈情況,畫成以組距為底邊、以頻數為高度的一系列連接起來的直方型矩形圖。
#Histogram
hist(mtcars$mpg)
hist(mtcars$mpg, breaks=10)
hist(diamonds$price, breaks=100)
qplot(diamonds$price)
qplot(price,data=diamonds,binwidth=100)
直方圖的優點:任何情況都能使用直方圖。
直方圖的不足:會有信息丟失。
1、條形圖是用條形的長度表示各類別頻數的多少,其寬度(表示類別)則是固定的。
2、直方圖是用面積表示各組頻數的多少,
矩形的高度表示每一組的頻數或頻率,寬度則表示各組的組距,因此其高度與寬度均有意義。
3、由於分組數據具有連續性,直方圖的各矩形通常是連續排列,而條形圖則是分開排列。
4、條形圖主要用於展示分類數據,而直方圖則主要用於展示數據型數據。
箱線圖作為描述統計的工具之一,其功能有獨特之處,主要有以下幾點:
1.直觀明瞭地識別數據批中的異常值
2.利用箱線圖判斷數據批的偏態和尾重
3.利用箱線圖比較幾批數據的形狀
#Box Plot
plot(ToothGrowth$supp, ToothGrowth$len)
plot(diamonds$color, diamonds$carat)
qplot(diamonds$color, diamonds$carat,geom="boxplot")
qplot(color,carat,data=diamonds,geom="boxplot")
1、不能提供關於數據分佈偏態和尾重程度的精確度量
2、對於批量比較大的數據批,反應的形狀信息更加模糊
3、用中位數代表總體評價水平有一定的局限性
#################
#Scatter Plot
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()
#Line Plot
ggplot(pressure, aes(x=temperature, y=pressure)) + geom_line() + geom_point()
#Bar Plot
ggplot(BOD, aes(x=Time, y=demand)) + geom_bar(stat="identity")
#Histogram
ggplot(diamonds,aes(x=price))+ geom_histogram(binwidth=100)
#Box Plot
ggplot(diamonds,aes(x=color, y=carat))+ geom_boxplot()
R Graphics Cookbook-Chapter2 Quickly Exploring Data