R语言 多组堆砌图

目录

数据格式

普通绘图

添加比例

R语言 堆砌图_r语言堆砌图-CSDN博客

关键点在于数据转换步骤和数据比例计算步骤,然后个性化调整图。

①data  <- melt(dat, id.vars = c("ID"))##根据分组变为长数据

②#计算百分比##
data2 <- ddply(data, 
            "ID",    ##需展示的X轴列名
            transform,
            percent = value / sum(value) * 100)#相当于按照样本分组,然后计算比例
#只提取需要的行
data2a <- data2[data2$variable=="high",]
data2a$percent <- round(data2a$percent,3)

数据格式
rm(list = ls())
library(ggplot2)
library(tidyverse)
library(reshape)
library(plyr)
library(patchwork)
dat <- as.data.frame(cbind(1:5, 5:1))
colnames(dat) <- c("high","low")
dat$ID <-  paste0("samp",1:nrow(dat))
head(dat)high low    ID
1    1   5 samp1
2    2   4 samp2
3    3   3 samp3
4    4   2 samp4
5    5   1 samp5

需要进行数据转换

##数据转换##
data  <- melt(dat, id.vars = c("ID"))##根据分组变为长数据


普通绘图
p <- ggplot(data = data,aes(x=ID,y=value,fill=variable))+#geom_bar(stat = "identity",position = "stack")+    ##展示原来数值geom_bar(stat = "identity",position = "fill")+      ##按照比例展示:纵坐标为1scale_y_continuous(expand = expansion(mult=c(0.01,0.1)),##展示纵坐标百分比数值labels = scales::percent_format())+scale_fill_manual(values = c("high"="#98d09d","low"="#e77381"),       ##颜色调整limits=c("high","low"))+                            ##limit调整图例顺序theme(panel.background = element_blank(),          ##主题设置axis.line = element_line(),                   legend.position = "bottom")+labs(title = "Title",x=NULL,y="percent")+           ##X,Y轴设置guides(fill=guide_legend(title = NULL,nrow = 1,byrow = FALSE))
p
#dev.off()


添加比例

计算百分比

#计算百分比##
data2 <- ddply(data, "ID",    ##需展示的X轴列名transform,percent = value / sum(value) * 100)#相当于按照样本分组,然后计算比例
#只提取需要的行
data2a <- data2[data2$variable=="high",]
data2a$percent <- round(data2a$percent,3)
head(data2a)ID variable value percent
1 samp1     high     1  16.667
3 samp2     high     2  33.333
5 samp3     high     3  50.000
7 samp4     high     4  66.667
9 samp5     high     5  83.333

绘图

p1 <- ggplot(data = data,aes(x=ID,y=value,fill=variable))+#geom_bar(stat = "identity",position = "stack")+    ##展示原来数值geom_bar(stat = "identity",position = "fill")+      ##按照比例展示:纵坐标为1scale_y_continuous(expand = expansion(mult=c(0.01,0.1)),##展示纵坐标百分比数值labels = scales::percent_format())+scale_fill_manual(values = c("high"="#98d09d","low"="#e77381"),       ##颜色调整limits=c("high","low"))+ ##limit调整图例顺序geom_text(data=data2a,aes(x=ID,y=1,label=paste0(value,"\n",#跨行"(",percent,")")),inherit.aes = FALSE,vjust=-0.2)+theme(panel.background = element_blank(),          ##主题设置axis.line = element_line(),                   legend.position = "bottom")+labs(title = "Title",x=NULL,y="percent")+           ##X,Y轴设置guides(fill=guide_legend(title = NULL,nrow = 1,byrow = FALSE))p1
#dev.off()

合图

p2 <-p+ p1
p2

补充:

跟着Nature学作图:R语言ggplot2堆积柱形图完整示例 - 简书 (jianshu.com)

《R数据可视化手册》——3.8 绘制百分比堆积条形图-阿里云开发者社区 (aliyun.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大学生毕业答辩要点

不要太老实 暗号①:论文的创新点体现在哪里? 你就答:本篇毕业论文的创新之处在于讨论XXX的问题时不仅在xxx方面列出xxx,也从实际的角度进行了举例论证。一是在方法上,本文将xxx方法与xxx方法相结合,能多有效消除单方法带来的误差有效提高了数据的精度(结果的有效性)二…

Go 使用ObjectID

ObjectID介绍 MongoDB中的ObjectId是一种特殊的12字节 BSON 类型数据&#xff0c;用于为主文档提供唯一的标识符&#xff0c;默认情况下作为 _id 字段的默认值出现在每一个MongoDB集合中的文档中。以下是ObjectId的具体组成&#xff1a; 1. 时间戳&#xff08;Timestamp&…

Ollama、FastGPT大模型RAG结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ Ollama作为后端大模型加载运行 FastGPT作为前端页面聊天集成RA…

Redis中的集群(八)

集群 设置从节点 向一个节点发送命令: CLUSTER REPLICATE <node_id>可以让接收命令的节点成为node_id所指定节点的从节点&#xff0c;并开始对主节点进行复制: 1.接收到该命令的节点会首先会在自己的clusterState.nodes字典中找到node_id所对应节点的clusterNode结构,…

根据后端获取到的文档流,下载打开显示“无法打开文件”

原代码&#xff1a; download(item) {this.axios.get(api.download/item.name).then(res > {// console.log(res)let bob new Blob([res.data],{type: application/vnd.ms-excel})const link document.createElement(a);let url window.URL.createObjectURL(bob);link.d…

flutter中鼠标检测事件的应用---主要在于网页端使用

flutter中鼠标检测事件的应用—主要在于网页端使用 鼠标放上去 主要代码 import package:flutter/material.dart;class CustomStack extends StatefulWidget {override_CustomStack createState() > _CustomStack(); }class _CustomStack extends State<CustomStack>…

高质量ChatGPT Prompts 精选

通用超级 Prompt GPT4实用。通用超级 prompt &#xff0c;根据你想要的输出和你的反馈&#xff0c;自动使用相应的专家角色帮你解决问题。如果需要升级ChatGPT Plus&#xff0c;可以参考教程 升级 GPT4.0 保姆教程 您是一位具有多领域专长的专家级ChatGPT提示工程师。在我们…

Nginx 访问日志配置

Nginx 的访问日志主要记录用户客户端的请求信息(见下表)。用户的每次请求都会记录在访问日志中,access_log 指令可以设置日志的输出方式及引用的日志格式。 名称访问日志指令指令access_log作用域http、stream、server、location、if in location、limit except指令值格式lo…

前端面试题收集整理

1. 浏览器地址输入url之后发生了什么 解析url (协议&#xff0c;域名IP端口&#xff0c;地址路径&#xff0c;hash值&#xff0c;参数) DNS对域名进行解析&#xff08;先去本地host查看&#xff09;&#xff1b; 建立TCP连接&#xff08;三次握手&#xff09;&#xff1b; 发送…

2023年全国青少年信息素养大赛(Python)海南赛区复赛真题,包含答案

2023 年全国青少年信息素养大赛 (Python) 海南赛区复赛真题 第 1 题,整数加 8 题目描述: 输入一个整数,输出这个整数加 8 的结果。 输入描述: 输入一行一个正整数。 输出描述: 输出求和的结果。 样例

YOLO算法改进Backbone系列之:Fcaformer

目前&#xff0c;设计更高效视觉Transformer的一个主要研究方向是通过采用稀疏注意力或使用局部注意力窗口来降低自我注意力模块的计算成本。相比之下&#xff0c;我们提出了一种不同的方法&#xff0c;旨在通过密集注意力模式来提高基于变换器的架构的性能。具体来说&#xff…

Fastjson报autotype is not support

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 打开AutoType功能 …

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例 如下图所示,在电脑的开始菜单中找到”Robot Neiborhood”,点击进入, 如下图所示,设置要连接的机器人名称和主机IP地址(要确保自己的电脑和机器人IP地址在同一网段内),点击Add添加, 添加在线…

接招吧! selenium环境+元素定位大法

selenium 与 webdriver Selenium 是一个用于 Web 测试的工具&#xff0c;测试运行在浏览器中&#xff0c;就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装&#xff0c;使其成为一套更加面向对象的Selenium WebDriver API。 …

创新科技:FlexLua助力LoRa无线一氧化碳传感器轻松开发

随着智能科技的不断进步&#xff0c;无线传感器技术在环境监测领域的应用越来越广泛。其中&#xff0c;LoRa无线一氧化碳传感器以其高效的通信原理和精准的传感器原理&#xff0c;在各种应用场景中大显身手。而借助FlexLua低代码技术&#xff0c;开发这类传感器变得更加轻松快捷…

FFmpeg: 自实现ijkplayer播放器--05ijkplayer–连接UI界面和ffplay.c

文章目录 ijkplayer时序图消息循环--回调函数实现播放器播放时状态转换播放停止 ijkmediaPlay成员变量成员函数 ijkplayer时序图 stream_open: frame_queue_init packet_queue_init init_clock 创建read_thread线程 创建video_refresh_thread线程 消息循环–回调函数实现 ui …

中级物流师、高级物流师资格认证考试大纲《物流管理实务》

物流管理实务 第一章 物流市场调查 一、市场调查基本知识 二、物流市场调研 三、物流市场预测 四、物流市场调研报告 第二章 仓库规划与设计 一、仓储规划概述 二、仓库规模和数量规划 三、仓库选址规划 四、仓库的结构与布局 五、自动化立体仓库的规划与设计 第…

创新联合体与新质生产力

发展新质生产力的核心要素是科技创新&#xff0c;主要路径是统筹生产力与生产关系&#xff0c;根本落脚点在产业高质量发展。在当前大国战略博弈全面加剧、新一轮科技革命和产业变革加速演化的新形势下&#xff0c;亟待以体系化思维加强主体力量协同与资源要素整合&#xff0c;…

场景:如何设计一个秒杀系统

来自hollis八股文 设计一个秒杀系统需要考虑以下问题 秒杀系统存在的问题 1. 高并发流量 2. 热点数据 3. 库存正常扣减 4. 重复下单 5. 对普通交易的影响 6. 业务手段 7. 黄牛 高并发流量 将请求链路变短&#xff0c;把一些流量挡在外面 1. 使用CDN服务存储静态资源…

微服务(基础篇-008-Elasticsearch分布式搜索【上】)

目录 初识elasticsearch&#xff08;1&#xff09; 了解ES&#xff08;1.1&#xff09; 倒排索引&#xff08;1.2&#xff09; es的一些概念&#xff08;1.3&#xff09; 安装es、kibana&#xff08;1.4&#xff09; ik分词器&#xff08;1.5&#xff09; ik分词器的拓展…