分面
qplot()
中默認的分面方法是將圖形拆分成若干個窗格,這可以通過形如row_var~col_var
的表達式進行指定。你可以指定任意數量的行變量和列變量,但請注意當變量數超過兩個時,生成的圖形可能會非常大,以至於不適合在屏幕上顯示。如果只想指定一行或一列,可以使用.作爲佔位符,例如row_var-.
會創建一個單列多行的圖形矩陣。
下用了兩張圖來展示這個技巧,它們是以顏色爲條件的重量的直方圖。第二列的直方圖繪製的是比例,這使得比較不同組的分佈時不會受該組樣本量大小的影響。左邊一列直方圖的y軸並不是原始數據的取值,而是將數據進行分組後的計數;..density..
則是一個新的語法,它告訴ggplot2
將密度而不是頻數映射到y軸。
density
將密度反映到y軸
facets
分面依據的變量
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))
展示以顏色爲條件的重量的直方圖。上圖展示的是頻數,下圖展示的是頻率。頻率圖可以使得比較不同組的分佈時不會受該組樣本量大小的影響。
高質量的鑽石(顏色 D) 在小尺寸上的分佈是偏斜的,而隨着質量的下降,重量的分佈會變得越來越平坦。
其他選項
qplot
中還有一些其他的選項用於控制圖形的外觀。這些參數與它們在plot
中的作用相同:
xlim
,ylim
:設置x軸和y軸的顯示區間,它們的取值都是一個長度爲2的數值向量,例如xlim=c(0,20)
或ylim=c(-0.9,-0.5)
;log
:一個字符型向量,說明哪一個座標軸(如果有的話)應該取對數。例如,log="x"
表示對x軸取對數,log="xy"
表示對x軸和y軸都取對數;main
:圖形的主標題,放置在圖形的頂端中部,以大字號顯示。該參數可以是一個字符串(例如,main="plot - title"
)或一個表達式(例如main=expression(beta[1]==1)
)。可以運行?plotmath
命令來查看更多的數學表達式的例子;xlab
,ylab
:設置x軸和y軸的標籤文字,與主標題一樣,這兩個參數的取值可以是字符串或數學表達式。
下面是一些操作實例
qplot(carat, price, data = dsmall, xlab = "Price ($)", ylab = "Weight (carats)",
main = "Price-weight relationship")
qplot(carat, price/carat, data = dsmall, ylab = expression(frac(price, carat)),
xlab = "Weight (carats)", main = "Small diamonds", xlim = c(0.2, 1))
qplot(carat, price, data = dsmall, log = "xy")