標籤:

「ggplot2」的起手式------qplot函數

"ggplot2"這個包的強大之處,相信大家已經有所耳聞,對於剛接觸"ggolot2"朋友可能有些不太好了解這個包使用情況,況且《R in Action》對於基礎比較薄弱的我來說有點unfriedly,個人這麼覺得,現在把個人一些學習筆記整理如下,供大家參考。

至於如何載入安裝這個包不做描述了。

qplot函數

因為ggplot2有一套自己的語法,如果覺得學習坡度有點陡峭,建議先從ggplot包中的qpolt函數起手。 qplot即quick plot,快速作圖,快速對數據做可視化展示,它的語法和R base包的語法是一樣的。

載入qgplot

library(ggplot2)

散點圖

1.簡單的散點圖(利用color分類,不同顏色的鑽石由不同顏色的點代表)

#取100個數據dsmall=diamonds[sample(nrow(diamonds), 100),]

qplot(carat, price, colour= color,data =dsmall )

#diamonds為ggplot裡面的內置數據。

2.簡單的散點圖(利用shape分類,不同的切割方式由不同形狀的點代表)

qplot(carat, price,shape=cutdata=dsmall)

繪製不同類型的圖表:geom參數

n

qplot(x,y,data=data,geom="")中的geom=""用來控制輸出的圖形類型 n

兩變數圖 nn

(1) geom="points",默認參數,繪製散點圖(x,y) nn

(2) geom="smooth" 繪製平滑曲線(基於loess, gam, lm ,rlm,glm) nn

(3) geom="boxplot" 繪製箱線圖 ,當x為屬性變數(factor),y為數值變數時 nn

單變數圖 nn

(4) geom="histogram",直方圖 nn

(5) geom="density",核密度估計圖 nn

(6) geom="bar",條形圖barchart nn

時間序列 nn

(7) geom="line",折線圖,可用於時間序列(當x=date) nn

(8) geom="path",路徑圖

同時繪製散點圖+平滑直線

PS:這個例子只能這麼組合了

qplot(carat, price,shape=cutdata=dsmall,geom=c(points,smooth))

由圖可知,平滑曲線並不理想

調整平滑曲線參數:

method = "loess", 默認平滑演算法, 通過span=調整窗寬, span=0(波動) 到 span=1(光滑)

qplot(carat, price, data = dsmall,method = "loess",span=0.2, geom = c("point", "smooth"))

method = "gam": GAM 在大數據時比loess高效,需要載入 mgcv 包

library(mgcv)

qplot(carat, price, data = dsmall, geom = c("point", "smooth"),

method="gam", formula = y ~ s(x))

method="lm", 線性平滑

qplot(carat, price, data = dsmall, geom = c("point", "smooth"),

method = "lm")

繪製箱型圖:

qplot(color,price/carat,data = dsmall,geom= "boxplot")

"boxplot" 繪製箱線圖 ,當x為屬性變數(factor),y為數值變數,切記!

單變數,直方圖

qplot(price, data = diamonds, geom = "histogram")

單變數,核密度估計圖

qplot(carat, data = diamonds, geom = "density")

用顏色區別不同類型的密度曲線

qplot(carat,data = diamonds, geom = "density",colour=color)

條形圖(柱狀圖)

qplot(color,price,geom="bar")

加權qplot(color, data = diamonds, geom = "bar", weight = carat)

Time-series

qplot(date, unemploy / pop, data = economics, geom = "line")

economics為內置數據

path plot

顏色按年份由淺到深畫出變化趨勢

先自定義函數year(),將字元串格式的時間轉化為年

year = function(x) as.POSIXlt(x)$year + 1900 #繪製1900年以後的數據信息

qplot(unemploy / pop, uempmed, data = economics,

geom = "path", colour = year(date))

不同亞類進行比較

qplot(carat, data = diamonds,

facets = binwidth = 0.1, xlim = c(0, 3))

ggplot包對於數據展示十分強大,這裡我我們只是用來ggplot裡面較為簡單的一個繪圖函數,

qplot裡面的語法也相對較為簡單,大家也相對容易接受!

推薦閱讀:

王寶強事件的數據分析
初創公司如何打造百萬級用戶產品?Teambition 的 Growth Hacking Ways
Python數據分析及可視化實例之銀行信用卡違約預測(24)
用quantmod包分析股票

TAG:数据分析 |