- R語言數據可視化之美:專業圖表繪制指南
- 張杰
- 819字
- 2019-09-20 14:52:46
1.6.7 位置調整
在geom_×××()函數中,參數position表示繪圖數據系列的位置調整,默認為"identity"(無位置調整),這個參數在繪制柱形圖和條形圖系列時經常用到,以繪制簇狀柱形圖、堆積柱形圖和百分比堆積柱形圖等。ggplot2位置調整參數如表1-6-7所示。在柱形圖和條形圖系列中,position的參數有4種:①identity:不做任何位置調整,該情況在多分類柱形圖中不可行,序列間會遮蓋,但是在多序列散點圖、折線圖中即可行,不存在遮蓋問題;②stack:垂直堆疊放置(堆積柱形圖);③dodge:水平抖動放置(簇狀柱形圖,position=position_dodge());④fill:百分比化(垂直堆疊放置,如百分比堆積面積圖、百分比堆積柱形圖等)。其中,箱形圖和抖動散點圖的位置調整如圖1-6-26所示。構造的數據集為:
表1-6-7 ggplot2位置調整參數


圖1-6-26 箱形圖和抖動散點圖的位置調整
N<-100 df<-data.frame(group=rep(c(1,2), each=N*2), y=append(append(rnorm(N,5,1), rnorm(N,2,1)), append(rnorm(N,1,1), rnorm(N,3,1))), x=rep(c("A", "B", "A", "B"), N))
新手工具
對于R語言新手,在這里推薦一款RStudio的插件esquisse:可通過交互操作實現簡單的ggplot2圖表,自動生成并導出繪圖代碼,供用戶再做進一步的調整與美化。esquisse的安裝可以通過使用devtools包來完成:
devtools::install_github("dreamRs/esquisse")
如果要在RStudio中啟動esquisse,既可以通過點擊RStudio界面的“Tools”→“Addins”→“ggplot2 builder”選項;也可以在“Console”命令框中輸入語句:esquisse:::esquisser(),其界面如圖1-6-27所示。

圖1-6-27 esquisse交互操作界面
高手必備
特別強調的是,要想熟練使用ggplot2繪制圖表,就必須深入理解ggplot與geom對象之間的關系。在實際繪圖語句中存在如表1-6-8所示的3種情況。在表中的案例,我們使用的數據集為向量排序函數sort()和正態分布隨機數生成函數rnorm()構造的df1和df2。
表1-6-8 ggplot與geom對象之間的關系情況

N<-20 df1 <- data.frame(x=sort(rnorm(N)), y=sort(rnorm(N))) df2 <- data.frame(x=df1$x+0.1*rnorm(N), y=df1$y+0.1*rnorm(N))
ggplot與geom對象之間的關系主要體現在如下兩點。
●ggplot(data=NULL, mapping = aes()):ggplot內有data、mapping兩個參數,具有全局優先級,可以被之后的所有geom對象所繼承(前提是geom內未指定相關參數)。
●geom_×××(data=NULL, mapping = aes()):geom對象內同樣有data和mapping參數,但geom內的data和mapping參數屬于局部參數,僅作用于geom對象內部。
- 大學計算機基礎(第二版)
- 動手玩轉Scratch3.0編程:人工智能科創教育指南
- Apache Mahout Clustering Designs
- Unreal Engine 4 Shaders and Effects Cookbook
- ANSYS Fluent 二次開發指南
- GameMaker Essentials
- Domain-Driven Design in PHP
- 后臺開發:核心技術與應用實踐
- 跟戴銘學iOS編程:理順核心知識點
- 官方 Scratch 3.0 編程趣味卡:讓孩子們愛上編程(全彩)
- Three.js權威指南:在網頁上創建3D圖形和動畫的方法與實踐(原書第4版)
- Java Web開發基礎與案例教程
- Raspberry Pi Blueprints
- 面向物聯網的Android應用開發與實踐
- 少年小魚的魔法之旅:神奇的Python