ggplot2學習筆記之qplot

#ggplot2 之從qplot 開始

qplot 是包ggplot2 中的一個快速畫圖函數,如果你已經對R 的基礎包畫圖函數plot基本掌握,那麼qplot 就很容易掌握了。

install.packages(‘ggplot2’) #安裝ggplot2包
library(ggplot2) #加載ggplot2包

set.seed(1410) #設置隨機種子
dsmall <- diamonds[sample(nrow(diamonds), 100), ] #由於數據集diamonds 數據量大,爲了方便畫圖,從中抽取 100個小樣本。

qplot 的一些參數如下:
qplot(x, y = NULL, …, data, facets = NULL, margins = FALSE, geom = “auto”, stat = list(NULL),
position = list(NULL), xlim = c(NA, NA), ylim = c(NA, NA), log = “”, main = NULL, xlab =
deparse(substitute(x)), ylab = deparse(substitute(y)), asp = NA)

常用參數:

參數 說明
x x的值
y y的值(可以爲空)
data 指定數據框,如果未指定則從當前環境中提取向量
facets 按某個類別分組,在一個畫板上同時畫出多個圖形
log 字符型向量,說明哪一個座標軸應該取對數。如log='x’表示取x 軸的對數,log='xy’表示取x、y 軸對數。
xlim、ylim 限制x、y 軸顯示區間
main 設置主標籤,位於圖形頂部中間
xlab、ylab x、y 軸標籤
asp 設置圖形高與寬的比例
colour 設置點、線的顏色
shape 設置點、線的類型
size 設置點、線的大小
alpha 設置圖形透明度
fill 設置圖形填充色,如箱線圖、直方圖的填充色
geom的值 說明
‘point’ 繪製散點圖
‘smooth’ 擬合一條平滑曲線,並將曲線與標準誤差展現在圖中
‘boxplot’ 繪製箱線圖
‘path’或’line’ 在數據點之間畫連線。'line只能畫從左到右的連續;而’path’可以是任意方向
‘histogram’ 繪製直方圖
‘freqpoly’ 繪製頻率多邊形
‘density’ 繪製密度曲線圖
‘bar’ 繪製條形圖

注意:對於不同類型圖形,有些參數可能會有所不同,具體視情況而定。

繪製鑽石重量carat 與價格price 的散點圖:

qplot(carat, price, data = dsmall)

這裏寫圖片描述

運用 colour 參數把顏色屬性 color 映射到圖中,不同顏色的鑽石用不同顏色的點來
反映:

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

這裏寫圖片描述

運用參數shape 把鑽石質量cut 屬性映射到圖中,可以看出不同質量的鑽石用不同
類型的點來表示:

qplot(carat, price, data = dsmall, shape = cut)

這裏寫圖片描述

參數log 可以用於對指定的座標軸取對數,log=’x’表示對x 軸取對數,log=’y’表示對
y 軸取對數,log=’xy’表示對x 與y 軸都取對數:

qplot(carat, price, data = dsmall, colour = color, log = 'xy')

這裏寫圖片描述

增加擬合線

qplot(carat, price, data = dsmall, log = 'xy', geom = c('point', 'smooth'))

這裏寫圖片描述
運用參數size 把鑽石質量cut 屬性映射到點的大小,可以看出鑽石質量越好,點
越大:

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

這裏寫圖片描述

參數alpha 可以用於設置圖形的透明度:

qplot(carat, price, data = diamonds, alpha = I(1/5))
qplot(carat, price, data = diamonds, alpha = I(1/50))
qplot(carat, price, data = diamonds, alpha = I(1/200))

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
運用參數 geom=’line’繪製線圖,對於不同顏色的鑽石用不同顏色反映,參數linetype
是線的類型:

qplot(carat, price, data = dsmall, linetype = color, colour = color, geom='line')

這裏寫圖片描述

按鑽石不同質量 cut 分類,繪製其重量 carat 的箱線圖,箱線圖用不同顏色填充;參
數colour 是用於設定箱線圖的線的顏色,而 fill 是其填充色:

qplot(cut, carat, data = dsmall, geom = 'boxplot', fill = cut)

這裏寫圖片描述

qplot(cut, carat, data = dsmall, geom = 'boxplot', colour = cut)

這裏寫圖片描述

對於直方圖而言,binwidth 參數用於設定組距來調節平滑度:

qplot(carat, data = diamonds, geom = 'histogram', binwidth = 1, xlim = c(0, 3))
qplot(carat, data = diamonds, geom = 'histogram', binwidth = 0.1, xlim = c(0, 3))
qplot(carat, data = diamonds, geom = 'histogram', binwidth = 0.01, xlim = c(0, 3))

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

當我們需要按某個數據屬性分組繪圖時,要求在同一個畫板上畫多個圖形,可以用facets 參數實現。

facets = 說明
row_var~col_var 按row_var屬性與col_var 屬性分組輸出圖形矩陣
row_var~. 按row_var屬性分組,圖形只按一列輸出
.~col_var 按col_var屬性分組,圖形只按一行輸出

按鑽石color 屬性分組,繪製鑽石重量carat 的直方圖,並按照一列輸出(下圖左);
增加參數…density…可以畫出其頻率圖(下圖右):

qplot(carat, data = diamonds, facets = color ~ ., geom = 'histogram', binwidth = 0.1, xlim =
c(0, 3)) #左圖
qplot(carat, ..density.., data = diamonds, facets = color ~ ., geom = 'histogram', binwidth =
0.1, xlim = c(0, 3)) #右圖

這裏寫圖片描述

按鑽石color 與cut 兩個屬性分組,繪製鑽石重量carat 的直方圖,輸出一個圖形矩
陣:

qplot(carat, data = diamonds, facets = color ~ cut, geom = 'histogram', binwidth = 0.1, xlim =
c(0, 3))

這裏寫圖片描述

歡迎訪問我的個人站點:http://bgods.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章