【R语言科研绘图】--- 柱状图

这篇具有很好参考价值的文章主要介绍了【R语言科研绘图】--- 柱状图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

R语言科研绘图——柱状图


前言

使用R语言绘制能够发表的图片,ggplot2是一个很好的选择。并且一些基于ggplot2开发的包,能够达到这个目标。graphpad prism做出来的图深得大家喜爱,因此本系列的文章就利用R语言ggprism这个包进绘制


【R语言科研绘图】--- 柱状图

一、柱状图

柱状图在绘图中经常使用到,例如PCR的数据结果,绘制过程如下

二、使用工具

1.所使用的包

为了科研绘图的美观,所以使用了ggprism这个包的绘制,能够绘制出和graphpad prism类似的效果,便于放在论文中发表

2.数据特征

使用的是R自带的ToothGrowth数据,包含了三个数据
len是指牙生长的长度
supp factor指的是给予的干扰因素,其中包括了VC和橘子汁
dose 指的是给予干扰因素的剂量

3.绘图

3.1 两组均值之间的比较

先把柱状图画出来

【R语言科研绘图】--- 柱状图
代码如下:

df_p_val <- rstatix::t_test(ToothGrowth, len ~ supp) %>% 
  rstatix::add_x_position()

p <- ggplot(ToothGrowth, aes(x = factor(supp), y = len)) + 
  stat_summary(geom = "col", fun = mean) + 
  stat_summary(geom = "errorbar", 
               fun = mean,
               fun.min = function(x) mean(x) - sd(x),
               fun.max = function(x) mean(x) + sd(x),
               width = 0.3) + 
  theme_prism() + 
  coord_cartesian(ylim = c(0, 35)) + 
  scale_y_continuous(breaks = seq(0, 35, 5), expand = c(0, 0))

加上统计结果
这里使用rstatix这个包里面的函数进行计算。

rstatix这个包的特点是能够和tidyverse类似,能够使用管道符进行计算,便于和tidyverse进行对接

【R语言科研绘图】--- 柱状图
代码如下:

df_p_val <- rstatix::t_test(ToothGrowth, len ~ supp) %>% 
  rstatix::add_x_position()
p + add_pvalue(df_p_val, y.position = 30)

缺少颜色,加上颜色

【R语言科研绘图】--- 柱状图

p <- ggplot(ToothGrowth, 
            aes(x = factor(supp), y = len)
            ) + 
  stat_summary(geom = "col", aes(fill = factor(supp)),fun = mean) + 
  stat_summary(geom = "errorbar", colour = 'red',
               fun = mean,
               fun.min = function(x) mean(x) - sd(x),
               fun.max = function(x) mean(x) + sd(x),
               width = 0.3) + 
  theme_prism() + 
  coord_cartesian(ylim = c(0, 35)) + 
  scale_y_continuous(breaks = seq(0, 35, 5), expand = c(0, 0))

p

p+ add_pvalue(df_p_val, y.position = 30)

需要注意的是,在添加颜色的时候,是在stat_summary当中添加aes(fill = factor(supp),如果添加到ggplot函数中,后面的统计结果又加不上去。

去除图例
因为图片的下方已经有了内容,反而图例显得多余,所以就去除掉图例。使用的是ggplot2绘制,因此按如下方法即可:

【R语言科研绘图】--- 柱状图

p + theme(legend.position = 'none')+
  add_pvalue(df_p_val, y.position = 30)

3.2 多组均值之间的比较

依然使用ToothGrowth 这个数据,比较不同的剂量之间生长的差异。总共有三组不同的剂量,这属于多组比较,这就需要确定一个比照的参照系。

单纯的出图,是这个样子
【R语言科研绘图】--- 柱状图
代码如下:

p <- ToothGrowth %>% 
  ggplot(aes(x = factor(dose), y = len)) + 
  stat_summary(geom = "col", fun = mean) + 
  stat_summary(geom = "errorbar", 
               fun = mean,
               fun.min = function(x) mean(x) - sd(x),
               fun.max = function(x) mean(x) + sd(x),
               width = 0.3) + 
  
  theme_prism() + 
  coord_cartesian(ylim = c(0, 40)) + 
  scale_y_continuous(breaks = seq(0, 40, 5), expand = c(0, 0))
p

加上统计数据,两种方式
【R语言科研绘图】--- 柱状图
代码如下

df_p_val <- 
  rstatix::t_test(ToothGrowth, len ~ dose, ref.group = "0.5") %>% 
  rstatix::add_xy_position()

p1 <- p + add_pvalue(df_p_val, label = "p.adj.signif")
p2 <- p + add_pvalue(df_p_val, label = "p.adj.signif", remove.bracket = TRUE)  

颜色太单一,更换颜色
【R语言科研绘图】--- 柱状图
代码如下:

p <- ToothGrowth %>% 
  ggplot(aes(x = factor(dose), y = len)) + 
  stat_summary(geom = "col", fun = mean,aes(fill = factor(dose))) + 
  stat_summary(geom = "errorbar", 
               fun = mean,
               fun.min = function(x) mean(x) - sd(x),
               fun.max = function(x) mean(x) + sd(x),
               width = 0.3) + 
  
  theme_prism() + 
  coord_cartesian(ylim = c(0, 40)) + 
  scale_y_continuous(breaks = seq(0, 40, 5), expand = c(0, 0))
p + theme(legend.position = 'none')

加上统计数据
【R语言科研绘图】--- 柱状图

df_p_val <- rstatix::t_test(ToothGrowth, len ~ dose, ref.group = "0.5") %>% 
  rstatix::add_xy_position()
  p <- ToothGrowth %>% 
  ggplot(aes(x = factor(dose), y = len)) + 
  stat_summary(geom = "col", fun = mean,aes(fill = factor(dose))) + 
  stat_summary(geom = "errorbar", 
               fun = mean,
               fun.min = function(x) mean(x) - sd(x),
               fun.max = function(x) mean(x) + sd(x),
               width = 0.3) + 
  
  theme_prism() + 
  coord_cartesian(ylim = c(0, 40)) + 
  scale_y_continuous(breaks = seq(0, 40, 5), expand = c(0, 0))
  
p1 <- p +theme(legend.position = 'none') + add_pvalue(df_p_val, label = "p.adj.signif")


p2 <- p+theme(legend.position = 'none')  + add_pvalue(df_p_val, label = "p.adj.signif", remove.bracket = TRUE)

后记

以上是使用R进行绘制柱状图并且加上统计分析的过程,其中一些细节改变图例更换颜色导出图片改变坐标轴 等等没有细致说明,可以进行细微调节。另外,统计分析使用了rstatix这个包,能够和tidyverse很好的结合,后续专门对统计分析进行梳理文章来源地址https://www.toymoban.com/news/detail-418306.html

到了这里,关于【R语言科研绘图】--- 柱状图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 科研绘图配色方案

    在撰写论文的时候,美观,大气,上档次的图表能够很好地给自己的论文加分。但是在绘制图表的时候往往会面临色彩搭配的问题,选择合适的色彩搭配能够有效地展示自己的方法,但是色彩搭配选择不当的话往往会被人质疑审美也会给论文造成负面影响。这篇博文结合了网

    2024年02月04日
    浏览(34)
  • 科研绘图(八)线性热图

    线性热图(Linear Heat Map)是一种数据可视化技术,用于展示数值在一维线性空间上的分布情况。它通常用于展示沿着一条线(例如时间线或任何一维序列)的数据密度或强度变化。线性热图与传统的二维热图不同,后者通常展示在二维平面上的数据分布。在线性热图中,线条

    2024年01月17日
    浏览(48)
  • 科研绘图(六)散点图矩阵

    散点图矩阵是一种显示多个变量之间关系的数据可视化工具,特别是当数据集包含三个或多个变量时,这种图表非常有用。这种图通常在探索性数据分析中使用,以便快速理解数据集中变量之间的关系。在散点图矩阵中,每行和每列都代表数据集中的一个变量,而矩阵中的每

    2024年01月16日
    浏览(50)
  • Python科研绘图--Task03

    目录 图类型 关系类型图 散点图的例子 数据分布型图 rugplot例子 分类数据型图  ​编辑回归模型分析型图 多子图网格型图 FacetGrid() 函数  PairGrid() 函数  绘图风格、颜色主题和绘图元素缩放比例 绘图风格 颜色主题  绘图元素缩放比列 图类型 关系类型图 数据集变量间的相互

    2024年02月11日
    浏览(32)
  • SCI科研论文配图插图绘制推荐-博图汇科研绘图

    科研论文 期刊封面图、摘要图、图文摘要(Graphical Abstract)、TOC图(Table of Contents)、插图、配图、原理图、示意图、机制图、数据图等的设计和绘制 ,将科研学者的idea、概念、原理等以图表的形式展现出来,将艺术审美与严谨的科研相结合。

    2024年02月16日
    浏览(48)
  • Matlab绘图系列教程-基础绘图:柱状图 (bar函数 )

    4.1 介绍 4.1.1 引言 柱状图是一种常用的数据可视化方式,用于比较不同类别的数据或展示数据的分布。在Matlab中,使用 bar 函数可以轻松地绘制出精美的柱状图。本篇博客将为您介绍如何使用Matlab绘制优雅的柱状图,展示数据的视觉效果和科研价值。 4.1.2 目标和受众 本篇博客

    2024年02月12日
    浏览(46)
  • ChatGPT科研绘图(基于python)【chatgpt使用指南-python绘图】

    chatgpt可以通过编写Python、matlab等代码实现绘图功能。经过试验, 其中以Python最为高效准确 ,基本不会出现报错。本文以Python绘图为例进行辅助绘图,其他编程语言类似,希望对大家能有帮助。 假如你有一张数据图片,可以通过图片转Excel将数据提取出来。例如以下网址 导出

    2024年02月05日
    浏览(50)
  • 【科研绘图】MacOS系统OmniGraffle实用指南

    用过不少绘图软件,包括Visio (only for Windows)、ProcessOn、draw.io等主流软件,然后换Mac后尝试了实验室在用的OmniGraffle,才第一次感受到了绘图软件的人性化和强大! 按住 Shift 后调整元素位置或调整线段,可以保证是沿着水平/垂直方向进行 control + L :锁定某个元素 option + comm

    2024年02月15日
    浏览(37)
  • 探索3D科研绘图:从学术图表入门到精通

    科研领域中,图表和可视化是传递研究成果和洞察力的关键工具。传统的二维图表虽然依然是主流,但在某些情境下,使用3D图表能够更好地展示数据的复杂性和关联性。本博客将引导读者从学术图表的基础开始,逐步深入,探索3D科研绘图的世界,带你从入门到精通。 在涉

    2024年02月04日
    浏览(62)
  • 科研绘图 | Visio用到出神入化是什么程度?

    以下内容均为本人真实的科研经历! 01 刚接触Visio Visio是我的硕导让我用的 ,那时候学机械设计,课题是研究一种翻身机器人帮助长期卧床的病人翻身,主要的研究方法是用运动捕捉设备捕捉人体翻身的动作,从而控制机器人运动。所以在写实验方案的时候, 要表示在人体

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包