当前位置: 首页 > news >正文

R语言 | 使用ggplot绘制柱状图,在柱子中显示数值和显著性

原文链接:使用ggplot绘制柱状图,在柱子中显示数值和显著性

本期教程

获得本期教程示例数据,后台回复关键词:20240628。(PS:在社群中,可获得往期和未来教程所有数据和代码)

往期教程部分内容













写在前面

基于ggplot绘制柱状图,小技巧,很基础的图形。但是,越到后面,会发现,越是基础的图形,我们使用的频率越高。今天的教程是基于发芽指数来绘制,我们模拟一个发芽数和天数,计算出发芽指数。

代码

##'@在柱状图中显示数字
##'@2024.06.28
##'@
##'@小杜的生信笔记library(ggplot2)
library(dplyr)
library(tidyr)
library(ggplot2)
library(agricolae)setwd("D:\\BioinfoFile\\小杜的生信笔记\\2024\\20240628_柱状图中显示数据")
##'@此次数据基于种子发芽指数计算公式进行,数据具有随机性,不具有任何意义。
##'@加载数据
data <- read.csv("20240628_inputdata.csv",header = T)data

相关计算代码

## 转换数据
long_data <- data %>%pivot_longer(cols = starts_with("germinated"), names_to = "replicate", values_to = "germinated")
long_data
##计算活力指数
germination_index <- long_data %>%group_by(treatment, day) %>%summarise(GI = sum(germinated / day)) %>%ungroup()#'@计算各个处理的平均数和标准差
summary_gi <- germination_index %>%group_by(treatment) %>%summarise(mean_GI = mean(GI), sd_GI = sd(GI))#'@单因素方差分析
anova_result <- aov(GI ~ treatment + day, data = germination_index)
summary(anova_result)#'@进行Tukey HSD检验
tukey_result <- HSD.test(anova_result, "treatment", group = TRUE)
print(tukey_result)# 提取 Tukey HSD 结果中的字母标记
groups <- tukey_result$groups
df_letters <- data.frame(sample = rownames(groups), letters = groups$groups)
##'@修改名称
colnames(df_letters) <- c("treatment","letters")# 合并均值和字母标记
df_data <- merge(summary_gi, df_letters, by = "treatment")

绘图

ggplot(df_data, aes(x = treatment, y = mean_GI, fill = treatment)) +geom_bar(stat = "identity", position = "dodge", color = "black", size = 0.5) +##'@误差线geom_errorbar(aes(ymin = mean_GI - sd_GI, ymax = mean_GI + sd_GI), width = 0.15, ## 宽度size = 1  ##字体大小) +##'@显示数字geom_text(aes(x = treatment, y = mean_GI + sd_GI + 0.5,  ## “+0.5”显示的高度label = round(mean_GI, 2)),   ### "round(mean_GI, 2))",其中2,表示数字显示的小数点位数size = 5,color = 'black') +##'@显示显著性geom_text(aes(x = treatment, y = mean_GI + sd_GI + 1.3, label = letters), size = 6, color = "red") +theme_bw()+scale_fill_manual(values = c("#1f78b4", "#ff7f00", "#4daf4a")) +labs(x = NULL, y = "Germination Index")+theme(#axis.line = element_line(size = 1),  ## 粗细text=element_text(#family = "sans",colour ="black",size = 10),axis.text.x = element_text(color = "black", size = 12),axis.text.y = element_text(color = "black",size = 11),axis.ticks = element_line(colour = "black"),strip.text = element_text(color = "black",size = 10),axis.title = element_text(color = "black",size = 12), ##坐标轴字体大小legend.position = "none",strip.background = element_blank())ggsave("20240608_柱状图-显示数字.pdf",width = 6, height = 4)

获得本期教程示例数据,后台回复关键词:20240628。(PS:在社群中,可获得往期和未来教程所有数据和代码)

若我们的教程对你有所帮助,请点赞+收藏+转发,这是对我们最大的支持。

往期部分文章

1. 最全WGCNA教程(替换数据即可出全部结果与图形)

  • WGCNA分析 | 全流程分析代码 | 代码一

  • WGCNA分析 | 全流程分析代码 | 代码二

  • WGCNA分析 | 全流程代码分享 | 代码三

  • WGCNA分析 | 全流程分析代码 | 代码四

  • WGCNA分析 | 全流程分析代码 | 代码五(最新版本)


2. 精美图形绘制教程

  • 精美图形绘制教程

3. 转录组分析教程

  • 转录组上游分析教程[零基础]

  • 一个转录组上游分析流程 | Hisat2-Stringtie

4. 转录组下游分析

  • 批量做差异分析及图形绘制 | 基于DESeq2差异分析

  • GO和KEGG富集分析

  • 单基因GSEA富集分析

  • 全基因集GSEA富集分析

小杜的生信筆記 ,主要发表或收录生物信息学教程,以及基于R分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

相关文章:

R语言 | 使用ggplot绘制柱状图,在柱子中显示数值和显著性

原文链接&#xff1a;使用ggplot绘制柱状图&#xff0c;在柱子中显示数值和显著性 本期教程 获得本期教程示例数据&#xff0c;后台回复关键词&#xff1a;20240628。&#xff08;PS&#xff1a;在社群中&#xff0c;可获得往期和未来教程所有数据和代码&#xff09; 往期教程…...

第十四届蓝桥杯省赛C++B组D题【飞机降落】题解(AC)

解题思路 这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列&#xff0c;我们可以使用深度优先搜索&#xff08;DFS&#xff09;的方法&#xff0c;尝试所有可能的降落顺序。 首先&#xff0c;我们需要理解题目中的条件。每架…...

容器化spring boot应用程序

容器化spring boot应用程序有多种方式&#xff0c;如基于简单的Dockerfile&#xff0c;多阶段Dockerfile以及基于Docker Compose等&#xff0c;我们将逐步给大家介绍&#xff0c;本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。 创建Spring boot应用程序 …...

掌握智慧校园:资产来源功能解析

在智慧校园的资产管理框架下&#xff0c;资产来源管理是确保资产数据完整性和合规性的重要一环。这一功能通过数字化手段&#xff0c;详尽记录每一项资产从何而来&#xff0c;无论是采购、捐赠、内部调拨&#xff0c;还是自制与改造&#xff0c;均需经过严格记录与追踪&#xf…...

基于公有云部署wordpress

云平台选择 腾讯云 阿里云 华为云 项目部署 一、架构讲解 1.1、定义与组成 LNMP是Linux、Nginx、MySQL&#xff08;或MariaDB&#xff09;和PHP&#xff08;或Perl、Python&#xff09;的首字母缩写&#xff0c;代表在Linux系统下使用Nginx作为Web服务器&#xff0c;MySQL作为…...

vite+vue集成cesium

1、创建项目、选择框架vuejs pnpm create vite demo_cesium 2、进入项目安装依赖 cd demo_cesium pnpm install3、安装cesium及插件 3、pnpm i cesium vite-plugin-cesium 4、修改vite-config.js import { defineConfig } from vite import vue from vitejs/plugin-vue impo…...

2024 年江西省研究生数学建模竞赛A题:交通信号灯管理问题分析、实现代码及参考论文

2024 年江西省研究生数学建模竞赛题目交通信号灯管理 1 题目 交通信号灯是指挥车辆通行的重要标志&#xff0c;由红灯、绿灯、 黄灯组成。红灯停、绿灯行&#xff0c;而黄灯则起到警示作用。交通 信号灯分为机动车信号灯、非机动车信号灯、人行横道信号 灯、方向指示灯等。 一…...

华为机试HJ1字符串最后一个单词的长度

华为机试HJ1字符串最后一个单词的长度 题目&#xff1a; 计算字符串中最后一个单词的长度 想法&#xff1a; 利用空格将字符串中的单词进行切分&#xff0c;返回最后一个单词的长度 input_str input() # 字符串输入 result input_str.split(" ")[-1] # 选取…...

排序(冒泡排序、选择排序、插入排序、希尔排序)-->深度剖析(一)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前言 排序是一种基本的数据处理操作&#xff0c;它涉及将一系列项目重新排列&#xff0c;以便按照指定的标准&#xff08;通常是数值大小&#xff09;进行排序。在C语言中&#xff0c;排序算法是用来对元素进行排序的一系…...

(2024)docker-compose实战 (6)部署前端项目(react, vue)

前言 本次仅使用nginx搭建单一的前端项目, 前端项目可以是html, react, vue.项目目录中需要携带nginx的配置文件(conf/default.conf).前端文件直接拷贝到项目目录中即可.如果不确定镜像的配置文件目录, 可以通过 docker inspect 镜像名 来查看具体的配置信息.使用docker-compos…...

python 中的 下划线_ 是啥意思

在 Python 中&#xff0c;_&#xff08;下划线&#xff09;通常用作占位符&#xff0c;表示一个变量名&#xff0c;但程序中不会实际使用这个变量的值。 目录 忽略循环变量&#xff1a;忽略函数返回值&#xff1a;在解释器中使用&#xff1a;举例子1. 忽略循环变量2. 忽略不需…...

Solana公链

Solana是一个高性能的区块链平台&#xff0c;其设计目标是在不牺牲去中心化或安全性的情况下提供可扩展性。Solana由前高通、英特尔及Dropbox的工程师于2017年末创立。以下是Solana的一些关键特点&#xff1a; 高吞吐量&#xff1a;Solana能够每秒处理高达65,000笔交易&#xf…...

【LeetCode】反转字符串中的单词

目录 一、题目二、解法完整代码 一、题目 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1…...

[leetcode]文件组合

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<vector<int>> fileCombination(int target) {vector<vector<int>> vec;vector<int> res;int sum 0, limit (target - 1) / 2; // (target - 1) / 2 等效于 target /…...

数据库断言

预期值和实际值做对比 步骤&#xff1a; 1、得到表格数据 2、接口断言预期值与实际值做对比 读取表格数据-得到接口地址&#xff08;address)和是否接口db检查(dbcheck)&#xff0c;并且这条数据是有效的(vaild) 有2条用例&#xff0c;也会有三个条件不全部满足的情况&…...

uniapp+nodejs实现小程序支付

1.准备商户号、企业级小程序(或者个体工商户级别的) 2.在小程序端调用uni.login获取code&#xff0c;传递给后端 uni.login({success: loginRes > {uni.request({url: "http://127.0.0.1:3003/wxpay/pay",data: {code: loginRes.code},method: "get",…...

SolidityFoundry 安全审计测试 memory滥用

名称&#xff1a; memory滥用 https://github.com/XuHugo/solidityproject/tree/master/vulnerable-defi 描述&#xff1a; 在合约函数中滥用storage和memory。 memory是一个关键字&#xff0c;用于临时存储执行合约所需的数据。它保存函数的参数数据&#xff0c;并在执行后…...

面试题--SpringBoot

SpringBoot SpringBoot 是什么(了解) 是 Spring 的子项目,主要简化 Spring 开发难度,去掉了繁重配置,提供各种启动器,可以 让程序员很快上手,节省开发时间. SpringBoot 的优点(必会) SpringBoot 对上述 Spring 的缺点进行的改善和优化&#xff0c;基于约定优于配置的思想&am…...

Stable Diffusion中放大图像的3种方法

前言 要执行 ControlNet tile upscale&#xff1a; 您想使用 Stable Diffusion 创建包含大量细节的大型图像吗&#xff1f;您将需要使用升频器。在本文中&#xff0c;您将学习 3 种放大图像的方法。 人工智能升级器标清高档ControlNet瓷砖高档 您将看到比较并了解这些方法的优…...

生产者消费模式

前言&#x1f440;~ 上一章我们介绍设计模式中的单例模式&#xff0c;今天我们来讲讲生产者消费模式 阻塞队列&#xff08;重要&#xff09; 生产者消费模式&#xff08;重要&#xff09; 阻塞队列在生产者消费模型中的作用 标准库的阻塞队列 手动实现阻塞队列 如果各位对…...

如何用Python零依赖快速获取百度搜索结果?python-baidusearch深度解析

如何用Python零依赖快速获取百度搜索结果&#xff1f;python-baidusearch深度解析 【免费下载链接】python-baidusearch 自己手写的百度搜索接口的封装&#xff0c;pip安装&#xff0c;支持命令行执行。Baidu Search unofficial API for Python with no external dependencies …...

3大创新突破让千元机械臂媲美工业级性能:Faze4开源六轴机器人DIY全指南

3大创新突破让千元机械臂媲美工业级性能&#xff1a;Faze4开源六轴机器人DIY全指南 【免费下载链接】Faze4-Robotic-arm All files for 6 axis robot arm with cycloidal gearboxes . 项目地址: https://gitcode.com/gh_mirrors/fa/Faze4-Robotic-arm 价值定位&#xff…...

一文搞懂Agent三大核心技术:Function Calling、MCP、A2A,小白也能轻松收藏学习!

本文详细解析了AI Agent的三大核心技术&#xff1a;Function Calling、MCP和A2A。Function Calling使AI能够主动获取外部信息&#xff0c;MCP为工具接入提供了标准化接口&#xff0c;而A2A则实现了多智能体之间的协作。通过这三个技术的演进&#xff0c;AI Agent的能力从点对点…...

OpenClaw对话增强:nanobot模型微调提升任务理解准确率

OpenClaw对话增强&#xff1a;nanobot模型微调提升任务理解准确率 1. 为什么需要专业场景的模型微调 在测试OpenClaw基础版本时&#xff0c;我发现一个明显痛点&#xff1a;当处理专业领域的自动化任务时&#xff0c;通用大模型经常出现"理解偏差"。比如在医疗文献…...

28:L构建AI Agent安全:蓝队的智能代理防御

作者&#xff1a; HOS(安全风信子) 日期&#xff1a; 2026-03-19 主要来源平台&#xff1a; GitHub 摘要&#xff1a; AI Agent的发展为安全防御带来了新的可能性&#xff0c;但也带来了新的安全挑战。基拉等对手可能利用AI Agent进行攻击。L深入研究AI Agent安全技术&#xff…...

后端/全栈/架构师转战AI大模型开发:可落地规划(建议收藏)

如果你本身是后端、全栈或架构师出身&#xff0c;就意味着你已经手握一套扎实的“确定性系统”构建能力——分布式部署、高并发处理、数据库事务管控、系统稳定性保障&#xff0c;这些都是你转型AI大模型开发的核心底牌&#xff0c;也是纯算法出身从业者难以快速补齐的短板。 而…...

避开这些坑!群晖+acme.sh申请Let’s Encrypt证书的完整指南

群晖NAS上零踩坑申请Lets Encrypt证书的终极实践手册 每次看到浏览器地址栏那个刺眼的"不安全"提示就浑身难受&#xff1f;作为群晖深度用户&#xff0c;我花了三个周末时间踩遍了所有证书申请的坑。从idn指令缺失到nss验证失败&#xff0c;从API调用超时到证书自动更…...

快速验证控制逻辑:用快马平台十分钟搭建pid算法仿真原型

今天想和大家分享一个快速验证PID控制算法的小技巧。作为一名自动化工程师&#xff0c;经常需要调试各种控制参数&#xff0c;传统方法要搭建物理实验环境或者用MATLAB仿真&#xff0c;都很费时。最近发现用InsCode(快马)平台可以十分钟就做出一个可交互的PID仿真原型&#xff…...

Linux内核数据结构与算法深度解析

Linux内核中常用的数据结构和算法分析 1. 链表数据结构实现与应用 1.1 链表基础结构 链表是Linux内核中使用最广泛的数据结构之一&#xff0c;它解决了数组不能动态扩展的缺陷。链表元素可以动态创建、插入和删除&#xff0c;且不需要占用连续内存空间。每个链表节点由两部分…...

合宙 MCP 工具:TRAE AI 自然语言控制 Luatools 实操

合宙MCP工具基于 MCP 协议&#xff0c;实现 AI 大模型与 Luatools 的无缝连接&#xff0c;开发者通过简单 JSON 配置&#xff0c;就能在 TRAE 编辑器用自然语言操控 Luatools 完成固件下载、日志获取等操作&#xff0c;告别手动烧录的繁琐。 核心能力&#xff1a; 固件自动烧录…...