官术网_书友最值得收藏!

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對象內部。

主站蜘蛛池模板: 云南省| 商丘市| 江都市| 普兰店市| 丘北县| 枣强县| 固安县| 北辰区| 长汀县| 金寨县| 宜丰县| 克东县| 柳河县| 清水县| 西乌珠穆沁旗| 哈密市| 马公市| 鹿泉市| 平乐县| 恩平市| 文成县| 白山市| 南华县| 四会市| 肇东市| 庆城县| 鄱阳县| 隆化县| 柯坪县| 晋江市| 淄博市| 阳原县| 天门市| 城市| 三台县| 阳城县| 恩施市| 尉犁县| 靖宇县| 商水县| 察雅县|