查看: 483|回复: 7

[R语言] ggstatsplot绘图|统计+可视化,学术科研神器

[复制链接]
  • TA的每日心情

    2016.7.20 14:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    钵水母

    Rank: 3Rank: 3

    主题
    14
    奥币
    619
    积分
    184
    注册时间
    2016.3.21
    在线时间
    40 小时

    发表于 2019.10.30 09:32:40 | 显示全部楼层 |阅读模式
    本文首发于“生信补给站”公众号,https://mp.weixin.qq.com/s/zdSit97SOEpbnR18ARzixw

    更多关于R语言,ggplot2绘图,生信分析的内容,敬请关注小号。


    ggstatsplot是ggplot2包的扩展包,可以同时输出美观的图片和统计分析结果,对于经常做统计分析或者生信人来说非常有用。数据准备
    gapminder 数据集包含1952到2007年间(5年间隔)的142个国家的life expectancy, GDP per capita, 和 population信息。
    #载入绘图R包
    library(ggstatsplot)
    #载入gapminder 数据集
    library(gapminder)
    head(gapminder)ggstatsplot-R包含有很多绘图函数(文末会给出),本文仅展示ggbetweenstats函数使用方法。ggbetweenstats绘图
    1 基本绘图展示显示2007年每个continent的预期寿命分布情况,并统计一下不同大陆之间平均预期寿命的是否有差异?差异是否显著?#设置种子方便复现
    set.seed(123)
    # Oceania数据太少,去掉后分析
    ggstatsplot::ggbetweenstats(
      data = dplyr::filter(
        .data = gapminder::gapminder,
        year == 2007, continent != "Oceania"
      ),
      x = continent,
      y = lifeExp,
      nboot = 10,
      messages = FALSE
    )

    可以看到图中展示出了2007年每个continent的预期寿命分布的箱线图,点图和小提琴图,均值,样本数;并且图形最上方给出了模型的一些统计量信息(整体)。
    统计信息意义如下图所示(官网):注:该函数根据分组变量中的个数自动决定是选择独立样本t检验(2组)还是单因素方差分析(3组或更多组)
    2 添加统计值上方给出了整体的检验P值,下面进行两两之间比较,并添加检验统计量set.seed(123)
    ggstatsplot::ggbetweenstats(
      data = dplyr::filter(
        .data = gapminder::gapminder,year == 2007, continent != "Oceania"),
      x = continent,y = lifeExp,
      nboot = 10,
      messages = FALSE,
      effsize.type = "unbiased", # type of effect size (unbiased = omega)
      partial = FALSE, # partial omega or omega?
      pairwise.comparisons = TRUE, # display results from pairwise comparisons
      pairwise.display = "significant", # display only significant pairwise comparisons
      pairwise.annotation = "p.value", # annotate the pairwise comparisons using p-values
      p.adjust.method = "fdr", # adjust p-values for multiple tests using this method
    )

    3 图形美化
    #添加标题和说明,x轴和y轴标签,标记,离群值,更改主题以及调色板。set.seed(123)
    gapminder %>% # dataframe to use
      ggstatsplot::ggbetweenstats(
        data = dplyr::filter(.data = ., year == 2007, continent != "Oceania"),
        x = continent, # grouping/independent variable
        y = lifeExp, # dependent variables
        xlab = "Continent", # label for the x-axis
        ylab = "Life expectancy", # label for the y-axis
        plot.type = "boxviolin", # type of plot ,"box", "violin", or "boxviolin"
        type = "parametric", # type of statistical test , p (parametric), np ( nonparametric), r(robust), bf (Bayes Factor).
        effsize.type = "biased", # type of effect size
        nboot = 10, # number of bootstrap samples used
        bf.message = TRUE, # display bayes factor in favor of null hypothesis
        outlier.tagging = TRUE, # whether outliers should be flagged
        outlier.coef = 1.5, # coefficient for Tukey's rule
        outlier.label = country, # label to attach to outlier values
        outlier.label.color = "red", # outlier point label color
        mean.plotting = TRUE, # whether the mean is to be displayed
        mean.color = "darkblue", # color for mean
        messages = FALSE, # turn off messages
        ggtheme = ggplot2::theme_gray(), # a different theme
        package = "yarrr", # package from which color palette is to be taken
        palette = "info2", # choosing a different color palette
        title = "Comparison of life expectancy across continents (Year: 2007)",
        caption = "Source: Gapminder Foundation"
      ) + # modifying the plot further
      ggplot2::scale_y_continuous(
        limits = c(35, 85),
        breaks = seq(from = 35, to = 85, by = 5)
      )

    其他绘图函数

    FunctionPlotDescriptionggbetweenstatsviolin plotsfor comparisons between groups/conditionsggwithinstatsviolin plotsfor comparisons within groups/conditionsgghistostatshistogramsfor distribution about numeric variableggdotplotstatsdot plots/chartsfor distribution about labeled numeric variableggpiestatspie chartsfor categorical dataggbarstatsbar chartsfor categorical dataggscatterstatsscatterplotsfor correlations between two variablesggcorrmatcorrelation matricesfor correlations between multiple variablesggcoefstatsdot-and-whisker plotsfor regression models
    更多请参照官方文档https://indrajeetpatil.github.io/ggstatsplot/index.html

    ◆ ◆ ◆  ◆ ◆
    R|生存分析(1):生存分析介绍以及绘制KM曲线Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化Forest plot(森林图) | Cox生存分析可视化maftools|TCGA肿瘤突变数据的汇总,分析和可视化maftools | 从头开始绘制发表级oncoplot(瀑布图)ggalluvial|炫酷桑基图(Sankey),你也可以秀ggplot2|详解八大基本绘图要素ggplot2|ggpubr进行“paper”组图合并pheatmap|暴雨暂歇,“热图”来袭!!!ggplot2-plotly|让你的火山图“活”过来ggplot2| 绘制KEGG气泡图ggplot2|绘制GO富集柱形图绘图系列|R-corrplot相关图绘图系列|R-VennDiagram包绘制韦恩图R|clusterProfiler-富集分析
    【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】
                   

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

  • TA的每日心情
    yes!
    11 小时前
  • 签到天数: 264 天

    连续签到: 2 天

    [LV.8]以坛为家I

    帝王蝶

    Rank: 4

    主题
    0
    奥币
    349
    积分
    206
    注册时间
    2018.1.22
    在线时间
    101 小时

    发表于 2019.10.31 09:04:04 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    忙~
    14 小时前
  • 签到天数: 21 天

    连续签到: 5 天

    [LV.4]偶尔看看III

    帝王蝶

    Rank: 4

    主题
    2
    奥币
    148
    积分
    392
    注册时间
    2019.10.25
    在线时间
    11 小时

    最佳新人活跃会员


    发表于 2019.11.2 09:20:23 | 显示全部楼层
    感谢楼主分析
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    忙~
    14 小时前
  • 签到天数: 14 天

    连续签到: 6 天

    [LV.3]偶尔看看II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    204
    积分
    197
    注册时间
    2019.3.19
    在线时间
    4 小时

    发表于 2019.11.6 20:41:39 | 显示全部楼层
    感谢楼主分享!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    忙~
    14 小时前
  • 签到天数: 14 天

    连续签到: 6 天

    [LV.3]偶尔看看II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    204
    积分
    197
    注册时间
    2019.3.19
    在线时间
    4 小时

    发表于 2019.11.7 01:09:27 | 显示全部楼层
    大神,感谢楼主
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019.7.8 11:17
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    54
    积分
    53
    注册时间
    2018.9.20
    在线时间
    5 小时

    发表于 2019.11.8 10:45:51 | 显示全部楼层
    非常棒的资料
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    忙~
    14 小时前
  • 签到天数: 14 天

    连续签到: 6 天

    [LV.3]偶尔看看II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    204
    积分
    197
    注册时间
    2019.3.19
    在线时间
    4 小时

    发表于 2019.11.10 09:58:20 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    no
    7 小时前
  • 签到天数: 40 天

    连续签到: 7 天

    [LV.5]常住居民I

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    745
    积分
    73
    注册时间
    2016.8.22
    在线时间
    19 小时

    发表于 6 天前 | 显示全部楼层
    感谢楼主分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表