使用 ggplot2 在分割小提琴图上叠加散点

2023-11-29

我跟着this在 2x2 设计中生成分割小提琴图的好答案

现在想象一下这些数据来自不同受试者的重复测量。另外,我想在散点图中绘制各个数据(我知道该图最终可能会太忙,我想先看看它)。

我已经快到了,但是有一个小错误,可能很容易修复。我提供了一个完整的工作示例,以防有更好的方法来做到这一点。

我直接从上一个问题复制了第一部分:

library(dplyr)
library(ggplot2)

set.seed(20160229)

I added subj到我的数据框,因为我想绘制每个主题的平均值

my_data = data.frame(
  y=c(rnorm(1000), rnorm(1000, 0.5), rnorm(1000, 1), rnorm(1000, 1.5)),
  x=c(rep('a', 2000), rep('b', 2000)),
  m=c(rep('i', 1000), rep('j', 2000), rep('i', 1000)),
  subj=c(rep(c(rep('1',200),rep('2',200),rep('3',200),rep('4',200),rep('5',200)),4))
)

pdat <- my_data %>%
  group_by(x, m) %>%
  do(data.frame(loc = density(.$y)$x,
                dens = density(.$y)$y))

pdat$dens <- ifelse(pdat$m == 'i', pdat$dens * -1, pdat$dens)
pdat$dens <- ifelse(pdat$x == 'b', pdat$dens + 1, pdat$dens)


ggplot(pdat, aes(dens, loc, fill = m, group = interaction(m, x))) + 
  geom_polygon() +
  scale_x_continuous(breaks = 0:1, labels = c('a', 'b')) +
  ylab('density') +
  theme_minimal() +
  theme(axis.title.x = element_blank())

到目前为止,效果很好。现在我尝试添加每个科目的平均值

meanY = aggregate(y ~ x + m + subj, my_data, mean, drop=TRUE)


ggplot(pdat, aes(dens, loc, fill = m, group = interaction(m, x))) + 
  geom_polygon() +
  geom_point(data=meanY, aes(fill = m, group = interaction(m, x))) +
  scale_x_continuous(breaks = 0:1, labels = c('a', 'b')) +
  ylab('density') +
  theme_minimal()

我收到错误:Error in eval(expr, envir, enclos) : object 'dens' not found


如果我理解正确的话你需要指定x and y in geom_point:

ggplot(pdat, aes(dens, loc, fill = m, group = interaction(m, x))) + 
  geom_polygon() +
  scale_x_continuous(breaks = 0:1, labels = c('a', 'b')) +
  ylab('density') +
  theme_minimal() +
  theme(axis.title.x = element_blank()) +
  geom_point(data = meanY, aes(x = ifelse(x == "a", 0, 1), y = y, fill = m, group = interaction(m, x)), shape = 21, colour = "black", show.legend = FALSE)

enter image description here

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

使用 ggplot2 在分割小提琴图上叠加散点 的相关文章

  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • 根据不平凡的标准有效合并两个数据帧

    正在接听这个问题 https stackoverflow com questions 18821862 data selection error 18823432 18823432昨晚 我花了一个小时试图找到一个没有增长的解决方案data
  • 在 R 中按组检查重叠开始和结束时间

    我想检查数据的重叠 这是数据 ID lt c rep 1 3 rep 3 5 rep 4 4 rep 5 5 Begin lt c 0 2 5 3 7 8 7 25 25 10 15 17 20 1 NA 10 11 13 End lt c
  • 如果条件长度 > 1 并且仅使用第一个元素,为什么我会在 R 中收到此警告

    我有下面的源代码 这if is na monthData 用于检查是否monthData is NA 如果是 则为其分配一个初始值 monthData lt NA if category QUARTER for m in c rep 1 4
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • R 中的转换会导致文档错误

    每当我运行此代码时 tm map 行都会给我警告消息 警告信息 在 tm map SimpleCorpus docs toSpace 中 转换删除文档 texts lt read csv Data fast food Domino s Do
  • 使用pivot_longer将R中的多列变成一列[重复]

    这个问题在这里已经有答案了 我有一个dfpopulation看起来像这样 未列出所有列和行 Region X1975 X1976 X1977 X2008 National Total 942420 93717 94974 132802 Be
  • 优化 R 中的嵌套 for 循环

    我尝试加速下面的代码 但没有成功 我读到Rfast https cran r project org web packages Rfast Rfast pdf包 但我也未能实现该包 有没有办法优化R中的以下代码 RI lt function
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • warnings() 在函数内不起作用?如何解决这个问题?

    op lt options warn 0 although doesn t work for any value of warn assign last warning NULL envir baseenv thisDoesntWork l
  • 在 R 中将时间间隔数据扩展为天数

    假设我有如下所示的数据 interval id indiv id role start date end date 1 1 A 2006 05 01 2006 06 16 2 1 B 2006 06 16 2006 10 16 3 1 A
  • R:编写抛硬币的随机采样程序

    假设我们有以下情况 有一枚硬币 如果它正面朝上 那么下一次抛掷正面的概率是 0 6 如果是反面 那么下一次抛掷反面的概率也是 0 6 一个班有100名学生 每个学生随机抛掷硬币几次 Student n 的最后一次抛硬币不会影响 Studen
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • 回归时如何设置系数值;右

    我正在寻找一种指定预测变量值的方法 当我使用当前数据运行 glm 时 其中一个变量的系数接近 1 我想将其设置为 0 8 我知道这会给我一个较低的 R 2 值 但我先验地知道模型的预测能力会更大 glm 的权重组件看起来很有希望 但我还没有
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph

随机推荐

  • 几何平均值:有内置的吗?

    我试图找到一个内置的几何平均值 但找不到 显然 内置函数不会在 shell 中工作时为我节省任何时间 我也不怀疑准确性有任何差异 对于脚本 我尝试尽可能频繁地使用内置函数 其中 累积 性能提升通常是显而易见的 万一没有 我怀疑是这样 这是我
  • 如何在 Python 中将一个内存 SQLite 数据库复制到另一个内存 SQLite 数据库?

    我正在为 Django 编写一个测试套件 它以树状方式运行测试 例如 测试用例 A 可能有 2 个结果 测试用例 B 可能有 1 个结果 测试用例 C 可能有 3 个结果 树看起来像这样 X A B C X B X X C X X 对于上面
  • 要求在 Prestashop 模块上的一个文件中自动加载的方法?

    我正在尝试将一组库与 Composer 一起用于 Prestashop 模块 我目前的方法是包括vendor autoload php每个文件上的文件 mymodule php controllers front foo php contr
  • 为什么我们需要使用 boost::asio::io_service::work ?

    有一个使用 boost asio 的示例 为什么这个例子使用 boost asio io service work 为什么是srv run 没有调用线程来执行任务 int main boost asio io service srv boo
  • 尝试使用 C# 中的 ODbc 从 MSysObjects 读取数据,但出现无权限错误

    如标题所述 我试图从 Access 2010 数据库中的 MSysObjects 读取数据 但出现异常 告诉我不允许从该表中读取数据 我可以读出其他非 MSys 表 SQL Query I am using SELECT FROM MSys
  • 如果视图具有特定类(backbone.js),则点击时触发函数

    我有一个div由backbone js视图生成 当用户点击这个div 一类active被添加到div和函数addToSet被执行 Problem 我希望在视图的时候触发另一个函数div有课active 但是 我的尝试如下所示总是导致addT
  • 返回从 A1 到最后使用的真正单元格的范围

    我想选择电子表格中的所有行和列 宏需要是动态的 因为每次调用宏时列数和行数往往会发生变化 它还需要能够考虑空白行和列 该子程序完成部分过程 Sub FindLastCell Cells Find What After A1 SearchDi
  • 在 C# 中从 XML 填充下拉列表

    我有以下 xml 格式 并且我正在使用 NET 2 0
  • Neo4j:在树状图中显示所有连接的节点及其父节点

    我的 neo4j 数据库中有以下布局 a b c d e f g h i j 我想做的是查询所有子节点 例如如果起始节点是b 那么孩子们是e f h 所有节点都具有相同的标签 名称 和相同的关系类型 我可以通过以下方式完成此任务 MATCH
  • Core Data 多线程存储关系

    我的问题很奇怪 我正在寻求帮助 我想向您解释我的系统是如何工作的 我对此有两个问题 我正在制作有两个表的应用程序 我正在使用核心数据 表格是类别 and Products 在核心数据中我建立了一对多的关系Category可以有多个Produ
  • Java 重写是如何工作的

    我有一个愚蠢的困惑 当我们重写父类方法时 这个派生重写方法是否仍然保留父类方法的代码 或者它是我们可以定义的新方法 阅读本文以明确概念 http docs oracle com javase tutorial java IandI over
  • 使用 Bouncy Castle 在 Java 中创建自定义 X509 v3 扩展

    我已成功使用 Bouncy Castle 中的 X509v3CertificateBuilder Java 类创建具有标准 V3 扩展的 X509 证书 我现在正在尝试创建具有自定义扩展的证书 我可以使用 addExtension 方法创建
  • C 中 x64 的 128 位算术

    在 x86 上实现 bignum 时 显然数字大小最有效的选择是 32 位 但是 您需要进行最多两倍数字大小的算术运算 即 32 32 33 32 32 64 64 32 32 幸运的是 x86 不仅提供了这一点 而且还可以通过可移植的 C
  • df.fillna(0) 命令不会将 NaN 值替换为 0

    我试图将下面代码中生成的 NaN 值替换为 0 我不明白下面的内容不起作用 它仍然保留 NaN 值 df pubs pd read sql select Conference Year count as totalPubs from pub
  • 如何在 Rails 6 中跳过现有项目的活动记录

    我有一个现有的 Rails 项目 它是在 API 模式下创建的 不使用数据库 在尝试部署到 Heroku 时 我收到许多与 ActiveRecord 相关的错误 gt Detecting rake tasks Could not detec
  • 强制改变方向

    我有一个基于选项卡的应用程序 其中一个选项卡在纵向和横向模式下都可用 所有其他选项卡仅在纵向模式下可用 我正在检查是否允许在 shouldAutorotateToInterfaceOrientation 中旋转的按钮 但是当我处于横向模式时
  • C:两个void指针的区别是什么类型?

    如果我减去两个空指针 我就会得到指针位置之间的相对距离 至少在我的测试系统上 我应该使用什么类型来存储结果 以便与 64 位系统兼容 size t 是正确的类型还是很长 背景 我们需要检查给定的 void 指针是否可以安全地用作双指针 我们
  • Java在空行后停止读取

    我正在做学校练习 但我不知道如何做一件事 据我所读 扫描仪不是最好的方法 但由于老师只使用扫描仪 所以必须使用扫描仪来完成 这就是问题 用户将文本输入到数组中 该数组最多可包含 10 行 并且用户输入以空行结束 我已经这样做了 String
  • Java中的序列化版本uid

    序列化id如何存储在对象的实例中 我们在Java中声明的Serialization id是静态字段 而静态字段是不会被序列化的 那么应该有某种方法来存储静态最终字段 java是怎么做到的呢 The 序列号版本UID不存储在 序列化 对象的实
  • 使用 ggplot2 在分割小提琴图上叠加散点

    我跟着this在 2x2 设计中生成分割小提琴图的好答案 现在想象一下这些数据来自不同受试者的重复测量 另外 我想在散点图中绘制各个数据 我知道该图最终可能会太忙 我想先看看它 我已经快到了 但是有一个小错误 可能很容易修复 我提供了一个完