ggplot2绘图入门系列之二:图层控制与直方图
如前文所述,ggplot2使用圖層將各種圖形元素逐步添加組合,從而形成最終結果。第一層必須是原始數據層,其中data參數控制數據來源,注意數據形式只能是數據框格式。aes參數控制了對哪些變量進行圖形映射,以及映射方式,aes是Aesthetic的縮寫。
下面我們來繪制一個直方圖作為示例。數據集仍采取mpg,對hwy變量繪制直方圖。首先加載了擴展包,然后用ggplot函數建立了第一層,hwy數據映射到X軸上;使用+號增加了第二層,即直方圖對象層。此時p被視為一種層對象,使用summary函數可得到關于它的更多信息,print(p)命令即可進行繪圖。
1 library(ggplot2) 2 p <- ggplot(data = mpg,aes(x = hwy)) 3 p <- p + geom_histogram() 4 summary(p) 5 data: manufacturer, model, displ, year, cyl, trans, 6 drv, cty, hwy, fl, class [234x11] 7 mapping: x = hwy 8 faceting: facet_grid(. ~ ., FALSE) 9 ----------------------------------- 10 geom_histogram: 11 stat_bin: 12 position_stack: (width = NULL, height = NULL)?
上面的信息告訴我們,p對象含有兩層,第一層數據層描述了變量和映射方式,第二層是直方圖對象(geom_histogram),geom表示幾何對象,它是ggplot中重要的圖層控制對象,因為它負責圖形渲染的類型。geom_histogram是圖形渲染類型的一種,其它類型可參見官網。
每個geom對象都需要有數據輸入,數據可以從第一層中自動讀取,也可以在aes參數中直接設置。而且每個geom還默認搭配某種統計變換(stat),geom_histogram的默認統計變換是stat_bin。它負責對數據進行分組計數。
下面我們嘗試兩種更為復雜的直方圖,首先將數據按照year這個變量劃分為兩組,用不同的顏色繪制直方圖,而且用頻率而非計數來刻畫Y軸,并添加密度曲線。
p <- ggplot(mpg,aes(hwy)) p + geom_histogram(position = 'identity',alpha=0.5,aes(y = ..density..,fill = factor(year))) +stat_density(geom = 'line',position = 'identity',aes(colour = factor(year)))?
如果想將兩個直方圖分開繪制,也可以使用facet_grid參數,結果如下圖所示。
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?轉載于:http://r-ke.info/2012/02/06/ggplot2-intro-2.html
轉載于:https://www.cnblogs.com/liulunyang/p/3868852.html
總結
以上是生活随笔為你收集整理的ggplot2绘图入门系列之二:图层控制与直方图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: smokeping部署安装
- 下一篇: dede:arclist 不能调用文章的