在ggplot2中,coord_flip和freescale不能一起工作

2024-02-03

以下是一些关于体育促进干预措施有效性的假设荟萃分析的示例数据,我想为其创建一个森林图:

example.df = data.frame(Author = c("McAuliffe et al.", "Palen et al.", "Manning et al.", "Richters et al.", "Grello et al.","Mpofu et al.", "Kuo & St Lawrence", "Langstrom & Hanson", "Ompad et al.", "Abdullah et al.","Yan", "Peltzer & Pengpid", "Lo & Wei", "Haggstrom-Nordin et al.", "Mwaba & Naidoo", "Hughes et al.","Lydie et al.", "Zimmer-Gembeck et al.", "Babalola", "Garos et al.", "Pinkerton et al."),
                    Sport = c("Basketball", "Basketball", "Baseball", "Dance", "Baseball", "Dance", "Wrestling","Wrestling", "Dance", "Baseball", "Wrestling", "Dance", "Swimming", "Swimming","Basketball", "Basketball", "Basketball", "Basketball", "Basketball", "Swimming", "Wrestling"),
                    Gender = c("Male", "Female", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female","Female", "Male", "Female", "Female", "Female", "Male", "Female", "Female", "Female", "Male", "Female"),
                    d = c(-0.12, 0.53, 0.11, 0.02, 0.32, 0.04, 0.03,0.04,0.26, 0.76, 1.11, 0.34, 0.77, 1.19, 0.59, 0.15, 0.30, 0.81, 0.12, 0.11, 1.01),
                    d_SE = c(.10, .04, .06, .01, .11, .08, .08, .04, .05, .05, .14, .07, .05, .08, .19, .16, .07, .16, .06, .18, .15))

数据框包含作者姓名、运动项目、样本是男性还是女性、干预的效应大小以及效应大小的标准误差。我希望创建一个将形状映射到性别以及特定运动的点图。在遵循张的“食谱”中的示例之后此相关查询 https://stackoverflow.com/questions/19599957/ggplot-confidence-intervals,我提出了以下代码,可以满足我的大部分格式化需求:

p<-ggplot(example.df, aes(x=Author, y=d, ymin=d-1.96*d_SE, ymax=d+1.96*d_SE,shape=Gender))+ 
geom_pointrange() + 
coord_flip()+
scale_y_continuous(limits=c(-2,2),breaks=c(-2,-1.5,-1,-0.5,0,.5,1,1.5,2))+
geom_hline(yintercept=0, color="grey60",linetype="dashed")+
theme_bw()+
theme(panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank(),panel.grid.major.y=element_line(color="grey60",linetype="dashed"))+
facet_grid(Sport ~ ., scales="free_y")
p

然而,我的问题是,每个方面的结果图(如下)将整个数据框中的每个作者绘制在 y 轴(技术上是 x 轴,但轴被翻转)上。相反,我只希望将具有与给定方面相关的数据的作者绘制在该方面的与作者相关的轴上,因此每个方面应该在轴上具有不同的作者列表。

我原以为scales="free_y"的组成部分facet_grid层将确保每个方面都有一个独特的作者轴(我也尝试过scales="free_x",给定倒轴),但这没有达到预期的效果。

有谁知道我可以确保每个方面的轴上出现的唯一作者姓名是与该方面相关的数据的方法吗?


安德里是对的coord_flip()似乎是问题的根源。然而,森林图格式的约定是在 y 轴上显示作者姓名,因此我想找到一种仍然满足此格式要求的方法。

中接受的答案post https://stackoverflow.com/questions/10183292/how-can-i-remove-empty-factors-from-ggplot2-facets格雷戈尔评论的实际上解决了我的问题;唯一需要的更改是我必须计算置信区间的上限/下限值的列。

现在有了更新的数据框:

example.df = data.frame(Author = c("McAuliffe et al.", "Palen et al.", "Manning et al.", "Richters et al.", "Grello et al.","Mpofu et al.", "Kuo & St Lawrence", "Langstrom & Hanson", "Ompad et al.", "Abdullah et al.","Yan", "Peltzer & Pengpid", "Lo & Wei", "Haggstrom-Nordin et al.", "Mwaba & Naidoo", "Hughes et al.","Lydie et al.", "Zimmer-Gembeck et al.", "Babalola", "Garos et al.", "Pinkerton et al."),
                    Sport = c("Basketball", "Basketball", "Baseball", "Dance", "Baseball", "Dance", "Wrestling","Wrestling", "Dance", "Baseball", "Wrestling", "Dance", "Swimming", "Swimming","Basketball", "Basketball", "Basketball", "Basketball", "Basketball", "Swimming", "Wrestling"),
                    Gender = c("Male", "Female", "Male", "Male", "Female", "Male", "Male", "Male", "Male", "Female","Female", "Male", "Female", "Female", "Female", "Male", "Female", "Female", "Female", "Male", "Female"),
                    d = c(-0.12, 0.53, 0.11, 0.02, 0.32, 0.04, 0.03,0.04,0.26, 0.76, 1.11, 0.34, 0.77, 1.19, 0.59, 0.15, 0.30, 0.81, 0.12, 0.11, 1.01),
                    d_SE = c(.10, .04, .06, .01, .11, .08, .08, .04, .05, .05, .14, .07, .05, .08, .19, .16, .07, .16, .06, .18, .15),
                    ci.low = c(-.30, .45, .00, -.01, .11, -.12, -.14, -.04, .16, .66, .84, .19, .68, 1.03, .22, -.17, .17, .50, .00, -.23, .72),
                    ci.high = c(.07, .62, .22, .05, .53, .20, .19, .11, .36, .87, 1.38, .47, .86, 1.35, .97,.47, .43, 1.11, .24, .46, 1.30))

#reorder Author based on value of d, so effect sizes can be plotted in descending order
example.df$Author<-reorder(example.df$Author, example.df$d, FUN=mean)

...然后是情节(没有任何coord_flip() usage):

p <- ggplot(example.df, aes(y = Author, x = d, xmin = ci.low, xmax = ci.high, shape=Gender)) +
geom_point() +
geom_errorbarh(height = .1) +
scale_x_continuous(limits=c(-2,2),breaks=c(-2,-1.5,-1,-0.5,0,.5,1,1.5,2))+
geom_vline(xintercept=0, color="grey60",linetype="dashed")+
facet_grid(Sport ~ ., scales = "free", space = "free") +
theme_bw() +
theme(strip.text.y = element_text(angle = 0))
p

非常好——感谢所有建议并帮助解决这个问题!

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

在ggplot2中,coord_flip和freescale不能一起工作 的相关文章

  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • 是否可以忽略 Matplotlib 绘图的第一个默认颜色?

    Matplotlib plots each column of my matrix a with 4 columns by blue yellow green red Then I plot only the second third fo
  • R中无法连接odbc数据库

    我一直在尝试使用以下命令将我公司的 DMS 连接到 RodbcConnect命令 但收到以下消息 myConn lt odbcConnect NZSQL uid cejacobson pwd password Warning message
  • 配置 fix() 和 edit() 以从 R/RStudio 在 Notepad++ 中打开

    当我在 RStudio 或 RGUI 中执行此操作时 fix SomeFunction 或使用edit 我可以在记事本中看到该函数的代码 有什么方法可以更改此设置 以便代码预览在 Notepad 中打开 而不是在普通的旧记事本中打开 同样
  • ggsubplot 是否适用于 R 3.2.1+?

    CRAN 提供的 ggsubplot 版本与 R 的最新版本 例如 3 1 1 不兼容 运行 ggsubplot 示例会返回以下错误 Error in layout base data vars drop drop At least one
  • data.table 的包装函数

    我有一个已经使用 data frame 上下文编写的项目 为了缩短计算时间 我尝试利用 data table 的速度 我的方法是构造包装函数 读取帧 将它们转换为表 进行计算 然后转换回帧 这是一个简单的例子 FastAgg lt func
  • 根据 R 中的字符串模式选择行

    假设我有以下数据 df lt data frame name c TO for Turnover for people HC people Hello world beenie man apple pears TO is number c
  • R - 通过合并和超过 2 个后缀进行减少(或者:如何合并多个数据帧并跟踪列)

    我正在尝试基于 2 列合并 4 个数据帧 但要跟踪列源自哪个数据帧 我在跟踪列时遇到问题 参见 dput dfs 帖子末尾 df example df1 Name Color Freq banana yellow 3 apple red 1
  • R:(中缀)运算符的两个定义之间的冲突:如何指定包?

    在 R 中 每当两个包定义相同的函数时 很容易指定要使用哪个包pkg foo 但是 当冲突的功能是一个时 你该怎么办 infix运算符 即使用定义 举个例子 两者ggplot2 and crayon define 有没有一种方法可以让我默认
  • 使用faceting()时如何连接geom_point()和geom_line?

    我有一个问题 但我在互联网上没有找到任何相关信息 我很高兴得到一些提示 我有一个数据集 其中 x 轴是离散的 但我想将这些点相互连接 我可以做到 我的问题是当我添加分面选项时 我无法再将这些点相互链接起来 我找到了一个替代方案 但看起来不太
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • 使用 R SOAP (SSOAP) 检索数据/抓取

    在 B cycle 页面 www bcycle com whowantsitmore aspx 上 我试图抓取投票的位置和值 The URL http mapservices bcycle com bcycleservice asmx ht
  • 如何不显示 ggplot 轴上的所有标签?

    I m trying to using ggplot2 to plot this But as you can see on the x axis you can t read anything 那么如何在 x 轴上显示每 10 年的值呢
  • 连接树状图和热图

    我有一个heatmap 一组样本的基因表达 set seed 10 mat lt matrix rnorm 24 10 mean 1 sd 2 nrow 24 ncol 10 dimnames list paste g 1 24 sep p
  • ggplot2 中的中心图标题

    这个简单的代码 以及今天早上我的所有脚本 已经开始在 ggplot2 中给我一个偏离中心的标题 Ubuntu version 16 04 R studio version Version 0 99 896 R version 3 3 2 G
  • 如何使用 Facet R 添加线条[重复]

    这个问题在这里已经有答案了 所以我有一个多面图 我希望能够向其中添加随每个面而变化的线 这是代码 p lt ggplot mtcars aes x wt geom histogram bins 20 aes fill factor cyl
  • 按名称包含在单个对象中的多个列对 data.frame 进行排序?

    我想排序一个data frame由多列组成 理想情况下使用基础 R 无需任何外部包 尽管如果有必要 就这样吧 读过如何按列对数据框进行排序 https stackoverflow com questions 1296646 how to s
  • 如何在闪亮的observeEvent中监听多个事件表达式

    我想要两个不同的事件触发观察者 有人建议here https stackoverflow com questions 34731975 how to listen for more than one event expression wit
  • SparkR 和 Sparklyr 之间导入 parquet 文件所需的时间差异

    我正在使用 databricks 导入镶木地板文件SparkR and sparklyr data1 SparkR read df dbfs data202007 source parquet header TRUE inferSchema
  • 解压 R 数据框中的列表

    我有一个dataframe其中一个字段包含不同长度的列表 我想将该字段中列表的每个元素提取到其自己的字段中 以便我可以将结果收集到一个很长的字段中dataframe每个列表元素都有一个 id 这是一个例子dataframe dat lt s

随机推荐

  • web.config 位置路径属性上的正则表达式(带参数)

    有没有办法做这样的事情
  • 如何在 MySQL 的 CONCAT 中使用 GROUP_CONCAT

    如果我在 MySQL 中有一个包含以下数据的表 id Name Value 1 A 4 1 A 5 1 B 8 2 C 9 如何将其转换为以下格式 id Column 1 A 4 5 B 8 2 C 9 我想我必须使用GROUP CONCA
  • javascript内部如何表示大于Number.MAX_SAFE_INTEGER的整数? [复制]

    这个问题在这里已经有答案了 在 JavaScript 中 数字在内部表示为双精度浮点数 这意味着有 53 位可用于表示整数值 有一个Number MAX SAFE INTEGER说明这一点的常数 等于Math pow 2 53 1 但是 在
  • Objective C - 错误:“需要类型”

    我在一些我认为很简单的事情上遇到了一个非常奇怪的错误 import
  • 通过 LDAP 进行 Kerberos 身份验证

    我正在开发控制台应用程序 它使用 ldap DirectoryServices Protocols 从活动目录中获取用户数据 目前 我可以使用 SSL TLS 和简单连接 既不是 SSL 也不是 TLS 的基本身份验证来获取数据 但现在我想
  • 如何将 ViewModel 中的数据发送到控制器方法中?

    我正在尝试将 JavaScript 函数中的数据发送到控制器方法中 当我有一个简单的模型时它工作正常 但是当我在使用包含多个对象的 ViewModel 时尝试发布数据时它不起作用 换句话说 我有一个登录页面 并且从我的角度来看 我将数据发布
  • Android 进度条不显示

    private Handler handler new Handler Override public void handleMessage Message msg removeDialog 0 switch msg what case S
  • 如何在自动热键中将字符串转换为数字?

    FormatTime CurrentMinute m将当前分钟分配给变量 CurrentMinute 其值是字符串 而不是数字 我想做一些计算 CurrentMinute 那么如何将其转换为数字呢 感谢您提前提供任何帮助 AutoHotke
  • 有没有办法在 matplotlib 中制作多个水平箱线图?

    我正在尝试制作一个 matplotlib 图 该图将多个水平箱线图彼此堆叠 该文档展示了如何制作单个水平箱线图以及如何制作多个垂直方向的图在这个部分 http matplotlib sourceforge net api pyplot ap
  • 无法访问刚刚创建的文件[重复]

    这个问题在这里已经有答案了 我的程序包含一个窗体和七个用户控件 我正在使用 MS Visual Studio 2010 C 语言 我的计划 将 txt 文件中的所有文本显示到 UserControl 中的文本框中 My Aim 我想检查 t
  • Crashlytics 与 proguard 崩溃

    我做了 Fabric 在他们的文档中要求的一切 renamesourcefileattribute SourceFile keepattributes Annotation keepattributes SourceFile LineNum
  • 在 Webview 中运行 javascript 代码

    我有一个在 android 中使用的 webview 我试图在单击按钮时触发 javascript 我正在尝试使用下面的代码将类的颜色更改为红色 但我似乎无法让它发挥作用 final WebView wb WebView findViewB
  • 找不到 com.sun.xml.rpc.tools.ant.Wscompile

    我需要使用以下服务 http mihansmscenter com webservice wsdl http mihansmscenter com webservice wsdl所以我应该使用 jax rpc 然后我将 jax rpc 插件
  • 凌乱的散点图回归线:Python

    在python 2 7 6 matlablib scikit learn 0 17 0中 当我在散点图上制作多项式回归线时 多项式曲线将非常混乱 如下所示 脚本是这样的 它将读取两列浮动数据并绘制散点图和回归 import pandas a
  • 在 Sublime text 中显示 Python 输出 [重复]

    这个问题在这里已经有答案了 Python 和 Sublime 新手 问题 我输入 print 你好世界 如何让它向我显示输出 Hello world 它是在单独的窗口中吗 或者 我知道我可以使用内置的 Python 控制台 但那是一个命令行
  • AutoMapper 从静态 API 迁移

    https github com AutoMapper AutoMapper wiki Migration from static API https github com AutoMapper AutoMapper wiki Migrat
  • 当随机字段值改变时,Solr 会更改文档的分数

    我需要在按分数排序的 Solr 结果集中来回导航 一一查看文档 为了形象化这一点 首先向用户呈现文档标题列表 然后他或她可以单击其中一个标题以查看更多详细信息 然后需要有机会移至原始列表中的下一个文档 而无需返回和查看单击另一个标题 在查看
  • 休眠搜索 |具有 minGramSize 1 的 ngram 分析器

    我的 Hibernate Search 分析器配置存在一些问题 我的索引实体之一 Hospital 有一个字符串字段 name 其中可能包含长度为 1 40 的值 我希望能够通过仅搜索一个字符来找到一个实体 因为医院有可能只有单个字符名称
  • Visual Studio 2010 - 如何在构建期间发布到本地 IIS

    我正在 VS 2010 中开发 ASP Net MVC Web 应用程序 我想在本地 IIS 7 中的它自己的 Web 下运行该 Web 应用程序 我设置了主机文件 以便 dev 指向我的本地 IP 因此当我创建 IIS Web 时 我可以
  • 在ggplot2中,coord_flip和freescale不能一起工作

    以下是一些关于体育促进干预措施有效性的假设荟萃分析的示例数据 我想为其创建一个森林图 example df data frame Author c McAuliffe et al Palen et al Manning et al Rich