1. 程式人生 > >《ggplot2-EGDA》 -chapter4-ggplot2裏圖層的概覽

《ggplot2-EGDA》 -chapter4-ggplot2裏圖層的概覽

創建 transform 變量 alt osi ams mapping null bmob

  • ggplot函數調用基本形式:

ggplot(數據框形式的數據,aes())

p <- ggplot(diamonds, aes(carat,colour = cut))

##這一步只是創建了一個ggplot的對象,還未加入圖層,尚且什麽也看不見
  • layer(geom, geom_params, stat, stat_params, data, mapping,position)

layer(幾何對象,幾何變換參數,統計量,統計變換參數,數據,映射,位置調整)

  • 因為幾何變換和統計變化是對應的,故只需要+geom_xxx()或者+stat_xxx()圖層
p<-p+geom_histogram(binwidth = 0.02,fill="steelblue")$layers
#使用$layers可以查看圖形對象的圖層
#stat_identity()和geom_point是一組對應
#geom_bar()和stat_bin()
  • 一個完整的ggplot函數包括創建圖形對象和添加圖層
  • 將圖層編輯保存起來,可方便調用
bestfit <- geom_smooth(method = "lm", se = F,
                       colour = alpha("steelblue", 0.5), size = 2)
####半透明深藍色回歸線的圖層
p <- ggplot(mtcars, aes(mpg, wt, colour = cyl)) + geom_point()
p
mtcars <- transform(mtcars, mpg = mpg ^ 2)##使用transform函數修改數據框裏變量的數據
p %+% mtcars ##更新圖形對象裏的數據集

使用+aes()可以添加、修改、刪除+aes(y=NULL)

  • 分組

技術分享

##使用分組參數
##忘記時可以使用?geom_line 查看幫助 
p<-ggplot(Oxboys, aes(age, height, group = Subject,colour=Subject))
p
+geom_line()

技術分享

##分組參數group的含義就是把data拆成不同的組,最後在圖層用相同的方式渲染

技術分享技術分享

技術分享

ggplot(diamonds, aes(carat)) + geom_histogram(aes(y = ..density..), binwidth = 0.1)
##繪制頻率密度(縱坐標是頻率除組距)直方圖

技術分享

  • 位置調整

p <- ggplot(diamonds, aes(clarity,fill=cut))
p+geom_bar()
p + geom_bar(position=‘stack‘)##缺省為堆疊

技術分享技術分享

p + geom_bar(position=fill) #fill填充  與堆疊類似,但高度標準化為1

技術分享

library(RColorBrewer)
p <- ggplot(diamonds, aes(clarity,fill=cut)) p+geom_bar() p + geom_bar(position=stack)+scale_fill_brewer(palette="YlOrRd")

技術分享

增加最後一個設置,得到統一配色

章末,文章給出了一個類似計量經濟模型的調試過程,沒有細看

《ggplot2-EGDA》 -chapter4-ggplot2裏圖層的概覽