基本圖形類型
載入所需包
library(effects)
library(ggplot2)
基本圖形類型簡述
以下幾何對象是ggplot2圖形的基本組成部分。每種幾何對象自身即可獨立構建圖形,同時也可以組合起來構建更復雜的幾何對象。這些幾何對象基本上都關聯了一種常見的圖形:當某幅圖形只使用了一種幾何對象構建時,這幅圖往往擁有一個特定的名稱。
這些幾何對象均是二維的,故x和y兩種圖形屬性都是不可或缺的。同時,它們都可以接受colour
和size
圖形屬性,另外,填充型幾何對象(條形、瓦片(tile
)和多邊形)還可以接受fill
圖形屬性。點使用shape圖形屬性,線和路徑接受linetype
圖形屬性。這些幾何對象可用於展示原始數據,另行計算得到的數據摘要和元數據。
-
geom_area()
用於繪製面積圖(area plot),即在普通線圖的基礎上,依y軸方向填充了下方面積的圖形。對於分組數據,各組將按照依次堆積的方式繪製。 -
geom_bar(stat="identity")
繪製條形圖。我們需要指定stat="identity"
,因爲默認的統計變換將自動對“值”進行計數(所以本質上這是一個一維的幾何對象)。而統計變換identity將保持數據不變。
默認情況下,相同位置的多個條形圖將以依次向上堆積的形式繪製。 -
geom_line()
繪製線條圖。圖形屬性group
決定了哪些觀測是連接在一起的;
參考R語言可視化 ggplot2—設定、映射、分組、匹配圖形屬性和圖形對象
以瞭解更多細節。geom_path
與geom_line
類似,但geom_path
中的線條是根據它們在數據中出現的順序進行連接的,而非從左至右進行連接。 -
geom_point()
繪製散點圖。 -
geom_polygon()
繪製多邊形,即填充後的路徑。數據中的每一行代表了多邊形的一個頂點。在繪圖之前將多邊形的頂點座標數據和原始數據進行合併往往會更方便。後續內容以地圖數據爲例詳細地闡明瞭這個概念。 -
geom_text()
可在指定點處添加標籤。它是這些幾何對象中唯一一個需要額外圖形屬性的:它需要指定label
參數。我們可以通過設置可選的圖形屬性hjust
和vjust
來控制文本的橫縱位置;此外,可以設置圖形屬性angle
來控制文本的旋轉。你可以?geom_text
以瞭解更多。 -
geom_tile()
用來繪製色深圖(image plot)或水平圖(level plot)。所有的瓦片(tile)構成了對平面的一個規則切分,且往往將fill
圖形屬性映射至另一個變量。
使用以下代碼繪製以上幾何對象,結果下圖所示。
實踐例子
使用不同的基本幾何對象繪製相同數據的效果。
從上到下的圖形名稱分別爲:散點圖、條形圖、線圖、面積圖、路徑圖、含標籤的散點圖、色深圖/水平圖和多邊形圖。
注意觀察條形圖、面積圖和瓦片圖的座標軸範圍:這三種幾何對象佔據了數據本身範圍以外的空間,於是座標軸被自動拉伸了。
df <- data.frame(
x = c(3, 1, 5),
y = c(2, 4, 6),
label = c("a","b","c")
)
p <- ggplot(df, aes(x, y)) + xlab(NULL) + ylab(NULL)
點圖+標題
p + geom_point() + labs(title = "geom_point")
條形圖+標題+對“值”進行計數
p + geom_bar(stat="identity") +
labs(title = "geom_bar(stat=\"identity\")")
折線圖+標題
p + geom_line() + labs(title = "geom_line")
面積圖(在普通線圖的基礎上,填充了線下方的面積)
p + geom_area() + labs(title = "geom_area")
路徑圖(按照數據出現的順序連接)
p + geom_path() + labs(title = "geom_path")
含標籤的散點圖(指定點添加標籤)
p + geom_text(aes(label = label)) + labs(title = "geom_text")
色深圖或水平圖
p + geom_tile() + labs(title = "geom_tile")
繪製多邊形,即填充後的路徑
p + geom_polygon() + labs(title = "geom_polygon")