分布在R中應該算是個比較重要的內容,而通過畫圖來展示數據的分布,可以更直觀的讓我們了解數據的分布情況
直方圖
geom_histogram(mapping = NULL, data = NULL, stat = "bin", position = "stack", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
密度圖
geom_density(mapping = NULL, data = NULL, stat = "density", position = "identity", ..., na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
直方圖是通過巨型的堆疊高度展示數據的分布情況,而密度圖通過線性的彎曲情況展示數據的分布。
下面來看個具體的例子
library(ggplot2) p<-ggplot(diamonds, aes(carat)) p+geom_histogram(bins=30)
下面我們來看下使用密度圖的效果
p+geom_density()
密度圖比直方圖顯得平滑,繼續可以看下堆疊情況的對比
p<-ggplot(diamonds, aes(carat,fill=cut)) p+geom_histogram(bins=50)
p+geom_density(position="stack",adjust=1/1.2)
這里未來避免各個分類變量數據的遮擋,把參數position的值設置為stack,可以顯示一層層往上疊加的效果
另外參數adjust可以和直方圖中參數bins的效果類似,用於調整帶狀寬度或者矩形寬度
p+geom_density(position="fill",adjust=1/1.2)
把position設置成fill可以更直觀的看出每個分類的密度情況,但坐標軸的指示效果會被模糊。