R语言绘制环状柱状堆积图+分组+显著性

无叠加、显著性的代码:

#设置工作环境
rm(list=ls())
setwd("D:/Desktop/0000/code-main/条形图")#加载R包
library(ggplot2) # Create Elegant Data Visualisations Using the Grammar of Graphics
library(tidyverse) # Easily Install and Load the 'Tidyverse'#加载数据(随机编写,无实际意义)
df <- read.table("无叠加.csv", header = T, sep = ",")
head(df)
df$group <- factor(df$group,levels = c("M","N","G","F")) # 这几个字母表示不同的组,对应数据表格的第一个大组:group
head(df)# ----------------------------------------
##计算标签角度
df2 <- as.data.frame(df[c(1:10,11:22,23:34,35:46,47:48),])  # 重点:分别为不同组的对应的行。注意对应数据理解
rownames(df2) <- 1:48
df2$group <- factor(df2$group,levels = c("M","N","G","F"))
df2$ID <- as.numeric(rownames(df2))
number_of_bar <- nrow(df2)
angle <-  90 - 360 * (df2$ID-0.5) /number_of_bar
df2$hjust<-ifelse(angle < -90, 1, 0)
df2$angle<-ifelse(angle < -90, angle+180, angle)
#创建标签数据及位置
df3 <- df2 %>% group_by(group) %>% summarize(start=min(ID), end=max(ID) - 4) %>% rowwise() %>% mutate(title=mean(c(start, end)))
df3$group <- factor(df3$group,levels = c("M","N","G","F"))# ----------------------------------------
#绘图
ggplot()+#手动添加辅助线geom_hline(yintercept = 0,lty="solid", color = "black",linewidth=0.6)+geom_hline(yintercept = 20,lty="solid", color = "grey80")+geom_hline(yintercept = 60,lty="solid", color = "grey80")+geom_hline(yintercept = 40,lty="solid", color = "grey80")+geom_hline(yintercept = 80,lty="solid", color = "grey80")+geom_hline(yintercept = 100,lty="solid", color = "grey80")+#柱状堆积图绘制geom_col(df, mapping=aes(group3, value, fill = group), color = "grey20", linewidth = 0.25, width = 0.8)+# y轴范围确定scale_y_continuous(limits = c(-25,150))+# 颜色scale_fill_manual(values = c("#4fbb98","#f46024","#dd6ab0","#7c8ebe"))+# 主题theme_void()+theme(legend.position = 'none')+# 手动添加显著性geom_text(data=df2, aes(x=ID, y=103, label=c("Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  "," ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  "),hjust=hjust,color=group),fontface="bold", size=3,angle= df2$angle, inherit.aes = F)+#手动添加坐标geom_text(data=df2, x=-0.3,y=5,label="0",color="black",size=3)+geom_text(data=df2, x=-0.3,y=25,label="20",color="black",size=3)+geom_text(data=df2, x=-0.3,y=45,label="40",color="black",size=3)+geom_text(data=df2, x=-0.3,y=65,label="60",color="black",size=3)+geom_text(data=df2, x=-0.3,y=85,label="80",color="black",size=3)+geom_text(data=df2, x=-0.3,y=105,label="100",color="black",size=3)+#极坐标转换coord_polar(direction=1)+##分组标签geom_text(data=df3, aes(x = title, y = 140, label=group,color=group), hjust=c(1,1,0,0), angle=c(335,250,135,60), size=5, fontface="bold", inherit.aes = F)+#颜色scale_color_manual(values = c("#4fbb98","#f46024","#dd6ab0","#7c8ebe"))

带叠加、显著性的代码:

#设置工作环境
rm(list=ls())
setwd("D:/Desktop/0000/code-main/条形图")#加载R包
library(ggplot2) # Create Elegant Data Visualisations Using the Grammar of Graphics
library(tidyverse) # Easily Install and Load the 'Tidyverse'#加载数据(随机编写,无实际意义)
df <- read.table("叠加.csv", header = T, sep = ",")
head(df)
df$group <- factor(df$group,levels = c("M","N","G","F")) # 这几个字母表示不同的组,对应数据表格的第一个大组:group
head(df)# ----------------------------------------
##计算标签角度
df2 <- as.data.frame(df[c(1:10,51:62,103:114,155:166,207:208),]) 
rownames(df2) <- 1:48
df2$group <- factor(df2$group,levels = c("M","N","G","F"))
df2$ID <- as.numeric(rownames(df2))
number_of_bar <- nrow(df2)
angle <-  90 - 360 * (df2$ID-0.5) /number_of_bar
df2$hjust<-ifelse(angle < -90, 1, 0)
df2$angle<-ifelse(angle < -90, angle+180, angle)
#确定显著性标签位置
result <- aggregate(value ~ group3, data = df, sum)
#创建标签数据及位置
df3 <- df2 %>% group_by(group) %>% summarize(start=min(ID), end=max(ID) - 4) %>% rowwise() %>% mutate(title=mean(c(start, end)))
df3$group <- factor(df3$group,levels = c("M","N","G","F"))# ----------------------------------------
#绘图
ggplot()+#手动添加辅助线geom_hline(yintercept = 0,lty="solid", color = "black",linewidth=0.6)+geom_hline(yintercept = 20,lty="solid", color = "grey80")+geom_hline(yintercept = 60,lty="solid", color = "grey80")+geom_hline(yintercept = 40,lty="solid", color = "grey80")+geom_hline(yintercept = 80,lty="solid", color = "grey80")+geom_hline(yintercept = 100,lty="solid", color = "grey80")+#柱状堆积图绘制geom_col(df, mapping=aes(group3, value, fill = group), color = "grey20", linewidth = 0.5, width = 0.8)+#y轴范围确定scale_y_continuous(limits = c(-25,150))+#颜色scale_fill_manual(values = c("#4fbb98","#f46024","#dd6ab0","#7c8ebe"))+#主题theme_void()+theme(legend.position = 'none')+#手动添加显著性geom_text(data=df2, aes(x=ID, y=103, label=c("Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  "," ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  ","Contral", "ADOM", "LHy1","LHA", "LFA","SHy1","SHA","SFA","RHy1","RHA","  ","  "),hjust=hjust,color=group), fontface="bold", size=3, angle= df2$angle, inherit.aes = F)+#手动添加标签geom_text(data=df2, aes(x=ID, y=result$value+4, label=c("", "", "***","", "","","**","","","","","","", "", "**","", "","","","***","","","","","", "***", "***","***", "**","***","**","***","**","***","","","", "***", "","", "","","","**","**","","",""),color=group), fontface="bold", size=4, angle= df2$angle+90, inherit.aes = F)+ #标签#手动添加坐标及标题geom_text(data=df2,x=11,y=30, label="Biodegradation rate(%)",color="black",size=3.5)+geom_text(data=df2, x=-0.2,y=5,label="0",color="black",size=3)+geom_text(data=df2, x=-0.2,y=25,label="20",color="black",size=3)+geom_text(data=df2, x=-0.2,y=45,label="40",color="black",size=3)+geom_text(data=df2, x=-0.2,y=65,label="60",color="black",size=3)+geom_text(data=df2, x=-0.2,y=85,label="80",color="black",size=3)+geom_text(data=df2, x=-0.2,y=105,label="100",color="black",size=3)+#极坐标转换coord_polar(direction=1)+##分组标签geom_text(data=df3, aes(x = title, y = 140, label=group,color=group), hjust=c(1,1,0,0), angle=c(335,250,135,60), size=5, fontface="bold", inherit.aes = F)+#颜色scale_color_manual(values = c("#4fbb98","#f46024","#dd6ab0","#7c8ebe"))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/145327.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Badge

可以附加在单个组件上用于信息标记的容器组件。该组件从API Version 7开始支持。 支持单个子组件。子组件类型&#xff1a;系统组件和自定义组件&#xff0c;支持渲染控制类型&#xff08;if/else、ForEach和LazyForEach&#xff09;。 一、接口 方法1&#xff1a; Badge(value…

【Python实战】-- 按条件提取所有目录下所有Excel文件指定行数据

系列文章目录 文章目录 系列文章目录前言一、背景二、使用步骤1.源码总结前言 一、背景 有多个目录,每个目录下有若干Excel文件,我们要提取每个Excel里面指定的行数据: 目录如下: 注:目录数量、名称不限,其中文件数量、名称不限 二、使用步骤 1.源码 解释: 每个文件…

计算机视觉: 可控的高质量人体生成

背景 关于人体动作的生成范式目前主流的方向可以分为以下两种: Sequence based motion generation: 给定控制信号然后一次性生成连续的动作&#xff0c;能生成一些连续高阶语义的动作信号&#xff0c;因为其能看到整个动作信号。eg: MDM: Human Motion Diffusion Model, Teve…

LongLoRA:不需要大量计算资源的情况下增强了预训练语言模型的上下文能力

麻省理工学院和香港中文大学推出了LongLoRA&#xff0c;这是一种革命性的微调方法&#xff0c;可以在不需要大量计算资源的情况下提高大量预训练语言模型的上下文能力。 LongLoRA是一种新方法&#xff0c;它使改进大型语言计算机程序变得更容易&#xff0c;成本更低。训练LLM往…

Elastic SQL 输入:数据库指标可观测性的通用解决方案

作者&#xff1a;Lalit Satapathy, Ishleen Kaur, Muthukumar Paramasivam Elastic SQL 输入&#xff08;metricbeat 模块和输入包&#xff09;允许用户以灵活的方式对许多支持的数据库执行 SQL 查询&#xff0c;并将结果指标提取到 Elasticsearch。 本博客深入探讨了通用 SQL …

RFID技术引领汽车零部件加工新时代

RFID技术的兴起引领了汽车零部件加工领域的新时代&#xff0c;作为一种利用无线电频率进行自动识别的技术&#xff0c;RFID技术能够快速、准确地识别物体并获取相关数据&#xff0c;在汽车零部件加工中&#xff0c;RFID技术具有重要的应用价值&#xff0c;可以提高生产效率、降…

ElementUI基本介绍及登录注册案例演示

目录 前言 一.简介 二.优缺点 三.Element完成登录注册 1. 环境配置及前端演示 1.1 安装Element-UI模块 1.2 安装axios和qs(发送get请求和post请求) 1.3 导入依赖 2 页面布局 2.1组件与界面 3.方法实现功能数据交互 3.1 通过方法进行页面跳转 3.2 axios发送get请求 …

Ubuntu性能分析-ftrace 底层驱动

1、框架介绍 ftrace内核驱动可以分为几部分:ftrace framework,RingBuffer,debugfs,Tracepoint,各种Tracer。 ftrace框架是整个ftrace功能的纽带,包括对内和的修改,Tracer的注册,RingBuffer的控制等等。 RingBuffer是静态动态ftrace的载体。 debugfs则提供了用户空间…

深度解读F5:从企业级负载均衡到云原生应用服务

上世纪九十年代&#xff0c;Internet 的快速发展催生了大量在线网站&#xff0c;Web 访问量迅速提升。在互联网泡沫破灭以前&#xff0c;这个领域基本是围绕如何对 Web 网站进行负载均衡与优化。因而在早期&#xff0c;也会有“Web 交换机”的说法。从1997年 F5 发布了 BIG-IP …

对负采样(negative sampling)的一些理解

负采样&#xff08;negative sampling&#xff09;通常用于解决在训练神经网络模型时计算softmax的分母过大、难以计算的问题。但在LightGCN模型论文的BPR LOSS中&#xff0c;负采样的概念可能与传统的softmax分母问题不完全一样。 在LightGCN模型中&#xff0c;不同于传统的协…

主机安装elasticsearch后无法登陆

问题描述 2023年7月31日11点02分&#xff0c;主机安装elasticsearch后无法登陆&#xff0c;通过后台查看主机宕机状态&#xff0c;CPU达到100%&#xff0c;按业务侧要求执行重启操作后发现主机黑屏无法正常进入系统&#xff0c;系统卡死。 2&#xff0e;原因分析 2.1通过故障…

WebGL 渲染三维图形作为纹理贴到另一个三维物体表面

目录 渲染到纹理 帧缓冲区对象和渲染缓冲区对象 帧缓冲区对象 帧缓冲区对象的结构 如何实现渲染到纹理 示例程序&#xff08;FramebufferObject.js&#xff09; 创建帧缓冲区对象&#xff08;gl.createFramebuffer&#xff08;&#xff09;&#xff09; gl.createFra…

机器学习——一元线性回归构造直线,并给出损失函数

目 录 Question 问题分析 1.概念补充 2.流程分析 3.注意 具体实现 最终成果 代码 思考&#xff1a; Question 在二维平面有n个点&#xff0c;如何画一条直线&#xff0c;使得所有点到该直线距离之和最短 如果能找到&#xff0c;请给出其损失函数 问题分析 1.概念…

C#,数值计算——Ranfib的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Implements Knuths subtractive generator using only floating operations. See /// text for cautions. /// </summary> public class Ranfib { p…

【运维日常】华为云专线实现idc通过nat出网

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

Android Jetpack Compose之确定重组范围并优化重组

目录 1.概述2.确定Composable重组的范围3.优化重组的性能3.1 Composable 位置索引3.2 通过Key添加索引信息3.3 使用注解Stable优化重组 1.概述 前面的文章提到Compose的重组是智能的&#xff0c;Composable函数在进行重组时会尽可能的跳过不必要的重组&#xff0c;只对需要变化…

外包干了2个月,技术有明显退步...

先说一下自己的情况&#xff0c;本科生&#xff0c;18年通过校招进入广州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!可我已经在一个企业干了3年的功能测试&…

从1开始的Matlab(快速入门)

MATLAB软件版本&#xff1a;MATLAB R2016b 本文是博主从零开始学Matlab的记录&#xff0c;适合第一次接触Matlab的同学阅读。 一、基础介绍 1.1界面认识 1.2变量命名 注&#xff1a;Matlab中的注释 %% 独占一行的注释&#xff08;有上下横线分割&#xff09; % 普通注释 …

volatile修饰数组

结论&#xff1a;volatile修饰对象或数组时&#xff0c;只能保证他们的引用地址的可见性。 非volatile数组的可见性问题 public class Test {static int[] a new int[]{1};public static void main(String[] args) {new Thread(() -> { //线程Atry {Thread.sleep(1000);}…

Flink安装及简单使用

目录 转载处&#xff08;个人用最新1.17.1测试&#xff09; 依赖环境 安装包下载地址 Flink本地模式搭建 安装 启动集群 查看WebUI 停止集群 Flink Standalone搭建 安装 修改flink-conf.yaml配置文件 修改workers文件 复制Flink安装文件到其他服务器 启动集群 查…