如何在 R 中创建分组箱线图?

2023-12-14

我想合并分组的三个数据集并获得一个只有两个框的图,1 个用于 A,1 个用于 B。您能建议如何实现吗?

我正在尝试在 R 中创建分组箱线图。我有 2 个组:A 和 B,在每个组中我有 3 个子组,每个子组有 5 个测量值。

以下是我构建箱线图的方法,但如果有人有更好、更短或简单的方法,我将不胜感激

A1 <- c(1,2,9,6,4)
A2 <- c(5,1,9,2,3)
A3 <- c(1,2,3,4,5)
B1 <- c(2,4,6,8,10)
B2 <- c(0,3,6,9,12)
B3 <- c(1,1,2,8,7)

DF <- data.frame(A1, A2, A3, B1, B2, B3)

boxplot(DF, col = rainbow(3, s = 0.5))
axis(side = 1, at = c(2,5), labels = c("A","B"))
legend("topleft", fill = rainbow(3, s = 0.5), legend = c(1,2,3), horiz = T)

enter image description here

如何正确地将 A 和 B 中的框分组(联合),并将轴标题固定为简单的 A 和 B,就像我尝试的那样?

我想要类似的东西

enter image description here


当数据位于 a 中时,像这样对它们进行分组会更容易long格式虎钳wide。从你的向量开始:

DF2 <- data.frame(
  x = c(c(A1, A2, A3), c(B1, B2, B3)),
  y = rep(c("A", "B"), each = 15),
  z = rep(rep(1:3, each=5), 2),
  stringsAsFactors = FALSE
)
str(DF2)
# 'data.frame': 30 obs. of  3 variables:
#  $ x: num  1 2 9 6 4 5 1 9 2 3 ...
#  $ y: chr  "A" "A" "A" "A" ...
#  $ z: int  1 1 1 1 1 2 2 2 2 2 ...

cols <- rainbow(3, s = 0.5)
boxplot(x ~ z + y, data = DF2,
        at = c(1:3, 5:7), col = cols,
        names = c("", "A", "", "", "B", ""), xaxs = FALSE)
legend("topleft", fill = cols, legend = c(1,2,3), horiz = T)

指某东西的用途at手动控制放置,因此“视觉分组”不是很稳健。 (您可以使用以下命令控制它们之间的间距width and/or boxwex.)

base R boxplot

您也可以选择ggplot2:

library(ggplot2)
ggplot(DF2, aes(y, x, fill=factor(z))) +
  geom_boxplot()

ggplot boxplot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 R 中创建分组箱线图? 的相关文章

  • R中添加水印

    我在用magickR中的库 我想在一些图片上添加水印 I used image annotate功能如下 img lt image read C Users Maydin Desktop manzara png image annotate
  • 返回数据帧 R 中的下一行

    我有一个看起来像这样的数据框 kind datetime book 2016 04 23 04 23 00 pen 2016 04 23 04 30 00 toy 2016 04 23 06 45 00 我想为数据集中的每一行返回下一行的日
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 绘制到图像对象

    我可以保存一个图imshow 因为它返回一个图像对象 如下所示 image plt imshow list interpolation None 后来我想创建其中许多图像的动画 将其保存在列表中并将其渲染为视频 如果这种方法很愚蠢 请告诉我
  • kableExtra 中的 row_spec() 函数不会在 html 输出中创建水平线

    我想在 kableextra 表中的某一行下方添加一条水平线 row spec 函数的参数 hline after 应该在行下方添加水平线 row spec 文档 https www rdocumentation org packages
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • MATLAB - 冲浪图数据结构

    我用两种不同的方法进行了计算 对于这些计算 我改变了 2 个参数 x 和 y 最后 我计算了每种变体的两种方法之间的 误差 现在我想根据结果创建 3D 曲面图 x gt on x axis y gt on y axis Error gt o
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • Dendextend:关于如何根据定义的组为树状图的标签着色

    我正在尝试使用一个名为 dendextend 的很棒的 R 包来绘制树状图并根据一组先前定义的组为其分支和标签着色 我已阅读您在 Stack Overflow 中的答案以及 dendextend vignette 的常见问题解答 但我仍然不
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • ddply 和aggregate 之间的区别

    有人可以通过以下示例帮助我了解聚合和 ddply 之间的区别 数据框 mydat lt data frame first rpois 10 10 second rpois 10 10 third rpois 10 10 group c re
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou

随机推荐

  • 算法 - 如何在 O(K) 中查找 Kt'h 元素并构建 O(n)

    我需要在 O k 中找到包含无序 n 元素的数组输入的 K 元素 满足以下要求 1 构建可以是O n 您可以使用给定的数组构建您想要的任何数据结构 2 找到O k 中的第k个元素 该算法在假设数组中没有重复元素的情况下工作 预处理 找到中间
  • 如何查看一个分支中的哪些提交不在另一分支中?

    我有两个分行devel and next 在开发中 我或多或少有大量的提交 一些提交是精心挑选的next 我还添加了一些提交到 next 并合并到devel 现在我想看看缺少什么next 这样我就可以在将更改提交之前详细测试它们next 我
  • 在android中创建一个定时服务

    我需要用java在android中创建一个日程服务 我尝试了一些代码 但在构建应用程序后它始终无法运行 我的逻辑很简单 我想创建一个服务来检查蓝牙文件夹路径中是否存在文件 如果该文件存在 那么该服务将运行另一个应用程序 我需要每 2 分钟运
  • StreamReader 不接受字符串?

    我正在尝试使用 StreamReader 读取文件 但使用时出现错误path 参数 1 无法从 string 转换为 System IO Stream 尽管从文档 那个你should能够使用字符串 我在这里缺少什么 public MyCla
  • 下一个导出脚本不适用于下一个/图像组件

    我有一个项目 我想构建并导出它 但出现错误 这是我的构建脚本package json file scripts build next build next export 这是我正在使用的组件next image import Image f
  • 如何检查Python字典中的内部字典中是否存在某个键?

    有一个Python字典 a b c x 1 y 2 z 3 我想知道是否a b c z 存在 但我还不知道是否a b c or a b 都存在 所以 如果我这样做 if z in a b c 我可能会得到一个 key c doesn t e
  • 为什么 C++ 模板类型匹配不检索引用限定符“&”?

    我有以下程序 include
  • 为什么在C语言中可以定义一个变量两次?

    我一直在测试全局变量 定义和声明 但我在这种情况下停了下来 main c include stdio h void func void int a int main void a 20 printf in main d n a func r
  • Java中如何通过分段请求上传大文件?

    我在用this教程上传大文件 但无法上传甚至 300KB 的文件 此外 它不会上传除 txt or log文件 需要可以帮助我上传大文件 无论文件类型如何 的指针 分享修改后的代码 public class MultipartUtility
  • sonarqube“应用项目排除”非常慢

    我们使用的是 sonarqube 5 1 1 应用项目排除 步骤通常非常非常慢 有时在 1 2 5 小时范围内 我们有 全局源文件排除 来排除 2 种模式 swagger ui min js 我不确定这是多久以前的更改 因为我们的 sona
  • Haskell第一步编译错误

    我刚刚从这里安装了完整的 Haskell 平台和安装程序https www haskell org platform mac html 现在 作为菜鸟 我创建了一个非常简单的程序 只是为了看看它是否有效 f Int gt Int f x x
  • 为什么每次我在 CosmosDB 文档资源管理器中查询 SELECT count(1) FROM c 时,它的值都会更改?

    我有一个包含大约 600 700 000 个文档的数据库 当我在文档资源管理器中执行 SELECT value count 1 FROM c 时 它返回的值范围从 64 000 到 72 000 看起来是随机的 当我使用 Python SD
  • 从 python 重新启动本地计算机

    有没有办法让电脑重启后运行Python程序 通用解决方案很好 但特别是我在 Windows 上 据我所知 没有通用的方法可以做到这一点 对于 Windows 您需要访问 Win32 API 就像这样 import win32api win3
  • 使用 Google 表格创建嵌套 JSON 对象

    我正在尝试自学一些 AppScript Javascript 作为练习 我想生成以下 JSON 对象 config type City Details config data city type MAJOR CITY city data c
  • 全局变量(再次)

    我一直听说全局变量应该never被使用 但我倾向于忽略 never 规则头脑发热 真的没有例外吗 例如 我目前正在使用 SDL 用 C 编写一个小游戏 在我看来 拥有一个带有指向屏幕缓冲区的指针的全局变量很有意义 因为代表游戏中不同类型事物
  • Jquery数据表在其中一列中显示图像

    我正在使用 Jquery 数据表并使用 Ajax 从服务器获取数据 基本上我发送的数据是关于Order并且有不同类型的订单 我想要实现的目标是发送Order type与订单数据一起并在客户端显示图像 我主要有两种类型 Surplus and
  • 远程 JMX 连接

    我正在尝试打开与远程计算机上运行的 java 应用程序的 JMX 连接 应用程序 JVM 配置有以下选项 com sun management jmxremote com sun management jmxremote port 1088
  • 维护 MySQL“IN”查询中的顺序

    我有下表 DROP TABLE IF EXISTS test foo CREATE TABLE test foo id int 10 unsigned NOT NULL auto increment name varchar 45 NOT
  • updatepanel 中的 asp.net 链接按钮不触发

    我有一个 ASP NET Web 应用程序 在我的 aspx页面我有一个更新面板 其中有 3asp LinkButton这应该调用后面的 C 代码 问题是 onclick 不起作用 代码如下 div div
  • 如何在 R 中创建分组箱线图?

    我想合并分组的三个数据集并获得一个只有两个框的图 1 个用于 A 1 个用于 B 您能建议如何实现吗 我正在尝试在 R 中创建分组箱线图 我有 2 个组 A 和 B 在每个组中我有 3 个子组 每个子组有 5 个测量值 以下是我构建箱线图的