ggpubr001 安裝及使用

原文鏈接:ggpubr: ‘ggplot2’ Based Publication Ready Plots

1.ggpubr

Hadley Wickham編寫的ggplot2是出色且靈活的軟件包,可用于R中的優(yōu)雅數(shù)據(jù)可視化。但是,默認(rèn)生成的繪圖必須先進(jìn)行一些格式化,然后才能發(fā)送它們進(jìn)行發(fā)布。 此外,要自定義ggplot,語法是不透明的,這對(duì)沒有高級(jí)R編程技能的研究人員增加了難度。

“ ggpubr”軟件包提供了一些易于使用的功能,用于創(chuàng)建和自定義基于“ ggplot2”的可發(fā)布出版物的圖表。

https://rpkgs.datanovia.com/ggpubr上可找到更多信息。

幕布鏈接:https://share.mubu.com/doc/6kFLvwuA6he

ggpubr

2.ggpubr安裝及加載

2.1 從CRAN安裝
install.packages("ggplot2")
install.packages("ggpubr")
2.2 從Github安裝最新版
# Install
if(!require(devtools)) install.packages("devtools")
devtools::install_github("kassambara/ggpubr")

3.分布圖 Distribution

library(ggpubr)
#>加載所需的包: ggplot2
#>加載所需的包: magrittr
# 創(chuàng)建數(shù)據(jù)集
set.seed(1234)
wdata = data.frame(
   sex = factor(rep(c("F", "M"), each=200)),
   weight = c(rnorm(200, 55), rnorm(200, 58)))
# head(dataframe),默認(rèn)查看數(shù)據(jù)集前6行數(shù)據(jù)
head(wdata, 4)
# 帶有平均線和邊際地毯的密度圖
# 按組更改輪廓和填充顏色(“性別”)
# 使用自定義調(diào)色板
ggdensity(wdata, x = "weight",
   add = "mean", rug = TRUE,
   color = "sex", fill = "sex",
   palette = c("#00AFBB", "#E7B800"))
帶有平均線和邊際地毯的密度圖
#帶有平均線和邊緣地毯的直方圖
#按組更改輪廓和填充顏色(“性別”)
#使用自定義調(diào)色板
gghistogram(wdata, x = "weight",
            add = "mean", rug = TRUE,
            color = "sex", fill = "sex",
            palette = c("#00AFBB", "#E7B800"))
帶有平均線和邊緣地毯的直方圖

4.箱形圖和小提琴圖 Box plots and violin plots

# 加載數(shù)據(jù)
data("ToothGrowth")
df <- ToothGrowth
# head(dataframe),默認(rèn)查看數(shù)據(jù)集前6行數(shù)據(jù)
head(df, 4)
#帶有抖動(dòng)點(diǎn)的箱形圖
#按組更改輪廓顏色:劑量
#使用自定義調(diào)色板
#添加抖動(dòng)點(diǎn)并按組更改形狀
 p <- ggboxplot(df, x = "dose", y = "len",
                color = "dose", palette =c("#00AFBB", "#E7B800", "#FC4E07"),
                add = "jitter", shape = "dose")
 p
帶有抖動(dòng)點(diǎn)的箱形圖
# 添加p值比較組
# 指定所需的比較
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
p + stat_compare_means(comparisons = my_comparisons)+ 
#添加成對(duì)比較p值
stat_compare_means(label.y = 50)                   
# 添加全局p值
image.png
# 內(nèi)嵌箱線圖的小提琴圖
# 按組更改填充顏色:劑量
# 添加帶有白色填充顏色的箱線圖
ggviolin(df, x = "dose", y = "len", fill = "dose",
         palette = c("#00AFBB", "#E7B800", "#FC4E07"),
         add = "boxplot", add.params = list(fill = "white"))+
  stat_compare_means(comparisons = my_comparisons, label = "p.signif")+ 
# 添加顯著性等級(jí)
  stat_compare_means(label.y = 50)                                      
# 添加全局p值
內(nèi)嵌箱線圖的小提琴圖

5.條形圖 Bar plots

  • Demo data set
# 加載數(shù)據(jù)
data("mtcars")
dfm <- mtcars
# 將cyl變量轉(zhuǎn)換為因子
dfm$cyl <- as.factor(dfm$cyl)
# 添加組名
dfm$name <- rownames(dfm)
# 檢查數(shù)據(jù)
head(dfm[, c("name", "wt", "mpg", "cyl")])
  • Ordered bar plots
    通過分組變量“ cyl”更改填充顏色。 排序?qū)⒃谌址秶鷥?nèi)進(jìn)行,但不會(huì)按組進(jìn)行。
ggbarplot(dfm, x = "name", y = "mpg",
          fill = "cyl",               # 通過cyl更改填充顏色
          color = "white",            # 將條形邊框顏色設(shè)置為白色
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "desc",          # 以升序?qū)χ颠M(jìn)行排序
          sort.by.groups = FALSE,     # 不要在每個(gè)組內(nèi)排序
          x.text.angle = 90           # 垂直旋轉(zhuǎn)x軸文本
          )
image.png
ggbarplot(dfm, x = "name", y = "mpg",
          fill = "cyl",               # 通過cyl更改填充顏色
          color = "white",            # 將條形邊框顏色設(shè)置為白色
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "asc",           # 按降序?qū)χ蹬判?          sort.by.groups = TRUE,      # 在每個(gè)組內(nèi)排序
          x.text.angle = 90           # 垂直旋轉(zhuǎn)x軸文本
image.png

6.偏差圖 Deviation graphs

偏差圖顯示定量值與參考值的偏差。 在下面的R代碼中,我們將繪制mtcars數(shù)據(jù)集中的mpg z得分。
計(jì)算mpg數(shù)據(jù)的z得分:

# 計(jì)算mpg的z-score 
dfm$mpg_z <- (dfm$mpg -mean(dfm$mpg))/sd(dfm$mpg)
dfm$mpg_grp <- factor(ifelse(dfm$mpg_z < 0, "low", "high"),
                     levels = c("low", "high"))
# 檢查數(shù)據(jù)
head(dfm[, c("name", "wt", "mpg", "mpg_z", "mpg_grp", "cyl")])
# 創(chuàng)建一個(gè)有序的條形圖,根據(jù)mpg的級(jí)別進(jìn)行著色:
ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",           # 通過mpg_level更改填充顏色 
          color = "white",            # 將條形邊框顏色設(shè)置為白色
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "asc",           # 按降序?qū)χ蹬判?          sort.by.groups = FALSE,     # 不要在每個(gè)組內(nèi)排序
          x.text.angle = 90,          # 垂直旋轉(zhuǎn)x軸文本
          ylab = "MPG z-score",
          xlab = FALSE,
          legend.title = "MPG Group"
image.png

旋轉(zhuǎn)繪圖:使用rotate = TRUE和sort.val =“ desc”

ggbarplot(dfm, x = "name", y = "mpg_z",
          fill = "mpg_grp",           # 通過mpg_level更改填充顏色 
          color = "white",            # 將條形邊框顏色設(shè)置為白色
          palette = "jco",            # jco journal color palett. see ?ggpar
          sort.val = "asc",           # 按降序?qū)χ蹬判?          sort.by.groups = FALSE,     # 不要在每個(gè)組內(nèi)排序
          x.text.angle = 90,          # 垂直旋轉(zhuǎn)x軸文本
          ylab = "MPG z-score",
          legend.title = "MPG Group",
          rotate = TRUE,
          ggtheme = theme_minimal()
image.png

7.點(diǎn)圖 Dot charts

  • 棒棒糖圖
    當(dāng)您具有大量要可視化的值時(shí),棒棒糖圖表可以代替條形圖。
    棒棒糖圖表由分組變量“ cyl”著色
ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # 按組區(qū)分顏色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定義調(diào)色板
           sorting = "ascending",                        # 按降序?qū)χ颠M(jìn)行排序
           add = "segments",                             # 將y = 0的段添加到點(diǎn)
           ggtheme = theme_pubr()                        # 選擇ggplot2主題
棒棒糖圖
ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # 按組區(qū)分顏色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定義調(diào)色板
           sorting = "descending",                       # 按降序?qū)χ颠M(jìn)行排
           add = "segments",                             # 將y = 0的段添加到點(diǎn)
           rotate = TRUE,                                # 垂直旋轉(zhuǎn)圖
           group = "cyl",                                # 按cyl進(jìn)行分組
           dot.size = 6,                                 # 設(shè)置dot點(diǎn)大小
           label = round(dfm$mpg),                        # 添加mpg值標(biāo)簽
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # 調(diào)整標(biāo)簽參數(shù)
           ggtheme = theme_pubr()                        # ggplot2 theme
)
image.png

ggdotchart(dfm, x = "name", y = "mpg_z",
           color = "cyl",                                # 按組區(qū)分顏色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定義調(diào)色板
           sorting = "descending",                       # 按降序?qū)χ颠M(jìn)行排序
           add = "segments",                             # 將y = 0的段添加到點(diǎn)
           add.params = list(color = "lightgray", size = 2), # 更改元素的顏色和大小
           group = "cyl",                                # 按cyl進(jìn)行分組
           dot.size = 6,                                 # 設(shè)置dot點(diǎn)大小
           label = round(dfm$mpg_z,1),                        # 添加mpg值標(biāo)簽
           font.label = list(color = "white", size = 9,
                             vjust = 0.5),               # 調(diào)整標(biāo)簽參數(shù)
           ggtheme = theme_pubr()                        # ggplot2 theme
)+
# 添加水平線
  geom_hline(yintercept = 0, linetype = 2, color = "lightgray")
image.png
ggdotchart(dfm, x = "name", y = "mpg",
           color = "cyl",                                # 按組區(qū)分顏色
           palette = c("#00AFBB", "#E7B800", "#FC4E07"), # 自定義調(diào)色板
           sorting = "descending",                       # 按降序?qū)χ颠M(jìn)行排序
           rotate = TRUE,                                # 旋轉(zhuǎn)繪圖
           dot.size = 2,                                 # 設(shè)置dot點(diǎn)大小
           y.text.col = TRUE,                            # 按組上色y軸標(biāo)簽
           ggtheme = theme_pubr()                        # ggplot2 theme
)+
  theme_cleveland()                                      # 添加虛線網(wǎng)格
克里夫蘭圓點(diǎn)圖 Cleveland’s dot plot

More

Find out more at https://rpkgs.datanovia.com/ggpubr.

Blog posts

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容