ggplot2 +facet_:某些方面的反转轴?

2024-03-14

我想将三个子图组合成一个图,而分面将是一种自然的方法。然而,使用反转的 x 轴,这些子图之一会更容易/更自然地阅读(而我想不理会其他子图)。有没有办法使用facet_grid() 或facet_wrap() 来完成此任务?

我考虑过的另一种选择是 grid.arrange() ,我遇到的主要问题是让它根据绘图区域(轴内)而不是根据图像的边缘来对齐子图。 (我的轴标题和标签大小不同,因此默认行为相当难看。)

编辑添加 MWE以及一些上下文数据。在这里,由于 beta 和 R 平方子图越大“越好”,因此反转 p 子图的轴会更自然。 (在这种情况下,将对数变换添加到该比例可能会更好,但我真正的问题不需要那么花哨。)

df <- data.frame(z=c(rep("R-squared",15),rep("p",15),rep("beta",15)),
                 x=c(runif(15),exp(-runif(15,1,10)),rnorm(15,1,0.5)),
                 y=rep(letters[1:15],3))
plot <- ggplot(df) + geom_point(aes(x=x,y=y)) + facet_grid(.~z, scales="free_x", switch="x")

这是一个使用的解决方案拼凑而成 https://github.com/thomasp85/patchwork

library(ggplot2)
library(dplyr)
df <- data.frame(z=c(rep("R-squared",15),rep("p",15),rep("beta",15)),
                 x=c(runif(15),exp(-runif(15,1,10)),rnorm(15,1,0.5)),
                 y=rep(letters[1:15],3))

p1 <- ggplot(filter(df, z == "beta"), aes(x, y)) +
  geom_point() 

p2 <- ggplot(filter(df, z == "p"), aes(x, y)) +
  geom_point() +
  scale_x_reverse() +
  theme(axis.title.y = element_blank(),
        axis.text.y  = element_blank(),
        axis.ticks.y = element_blank())

p3 <- ggplot(filter(df, z == "R-squared"), aes(x, y)) +
  geom_point() +
  theme(axis.title.y = element_blank(),
        axis.text.y  = element_blank(),
        axis.ticks.y = element_blank())

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

ggplot2 +facet_:某些方面的反转轴? 的相关文章

随机推荐

  • 在 DataContext 中使用时无法删除文件

    我的应用程序在屏幕上显示图像 基于本地计算机上的文件的图像 用户可以根据需要删除它们 每次我尝试删除文件时 都会出现以下错误消息 The process cannot access the file C Users Dave Desktop
  • 在使用 Web 服务器加载 Asp.Net Aspx 页面之前,如何编译它们?

    Visual Studio 隐藏了 aspx 页面中的拼写错误 而不是隐藏的代码 这真的很烦人 如果编译器编译它们 我会得到一个编译错误 在编译时编译页面 请参阅 Mike Hadlow 的帖子 http mikehadlow blogsp
  • Rust 的词法语法是规则的、上下文无关的还是上下文相关的?

    大多数编程语言的词法语法都相当缺乏表达力 无法快速对其进行词法分析 我不确定 Rust 的词法语法属于什么类别 大多数看起来很正常 可能除了原始字符串文字 https doc rust lang org reference tokens h
  • .NET Framework 4.6.2 和 .NET Standard 2.0 不兼容

    项目目标 NET框架4 6 2 项目使用 NuGet 包 Entity Framework Core 引用 NET 标准 2 0 它出现在packages folder 据我所知 NET 4 6 2 and NET 标准 2 0不兼容 它会
  • D3 中的鼠标事件和画笔

    我目前正在尝试自定义时间序列图表的示例 该示例位于http nvd3 com ghpages lineWithFocus html http nvd3 com ghpages lineWithFocus html 这是使用 d3 之上的库
  • Reactjs 和砌体布局 - 未定义

    我已经在 masonry layout 上完成了 npm 安装 但是当我渲染这个组件时 它出现了一个元素未定义的错误 无法设置未定义的属性 元素 这是一个jsfiddle http jsfiddle net 0ht35rpb 82 http
  • 通过维护顺序来聚合重复记录,并且还包括重复记录

    我正在尝试解决一个有趣的问题 很容易只做一个 groupBy 来进行聚合 如求和 计数等 但这个问题略有不同 让我解释 这是我的元组列表 val repeatSmokers List String String String String
  • 仅允许在 JSON 架构中声明的属性

    我正在使用 json schema 并且只想允许在此文件中声明的属性通过验证 例如 如果用户在其 json 对象中传递 name 属性 则此架构将失败 因为 name 未在此处作为属性列出 是否有一些类似于 required 的函数只允许列
  • 提取特定字符串后的数字

    我需要找到字符串 Count of 后面的数字 计数 字符串和数字之间可能有空格或符号 我有一些可以在 www regex101 com 上使用但不能与 stringr 一起使用的东西str extract功能 library string
  • 编程高尔夫:玩俄罗斯方块

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 基础知识 考虑以下四格骨牌和空的比赛场地 0123456789 I O Z T L S J
  • 如何在 celery task.apply_async 中使用优先级

    我有一个testcelery 中的队列 我为它定义了一个任务 celery app task queue test ignore result True def priority test priority print priority 它
  • playOrm 基本设置 + playOrm 成熟度 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • LSB 中是否有 RPM 文件命名约定?

    RPM 是 LSB 中的包格式 但 LSB 是否强制 RPM 的任何命名标准 类似于 http www rpm org max rpm ch rpm file format html http www rpm org max rpm ch
  • cdata-section-elements 不工作

    我试图通过设置全局参数在通过 XSLT 使用 Saxon HE v9 7 0 14 生成的 xml 文件中设置密码 密码可以包含任何字符 因此需要将其放在CDATA部分 我试图通过设置来实现这一点cdata section elements
  • 删除表格单元格的边框

    我知道这是一个愚蠢的问题 但我似乎完全忘记了该怎么做 我有一个 HTMLtable我想删除所有单元格周围的所有边框 以便整个表格周围只有一个边框 我的代码如下所示 table border 1 width 500 tr th h1 Your
  • Silverlight 3 替代 FileVersionInfo.GetVersionInfo

    在 Silverlight 3 0 应用程序中 我想使用程序集文件版本 http msdn microsoft com en us library system reflection assemblyfileversionattribute
  • 从 History api 接收的步骤数据与 google fit 不匹配

    我希望在我的应用程序中计算 google fit 步数 因为我使用的是 google 提供的 History api 我发现从历史 API 接收的步骤与 google fit 不匹配 即使我使用了 google 提供的相同代码 下面是我的代
  • 创建一个包含 JSONObject Android 中所有键的数组

    您好 我想创建一个 JSONObject 中所有键的数组 我的理解 如果我错了 请纠正我 是我需要将 JSONObject 转换为 Map 然后从中创建一个数组 有人知道如何做到这一点吗 无需转换JSONObject到 Map 然后创建一个
  • Node exceljs读取文件

    所以根据官方文档我应该能够使用以下方式读取Excel文档 read from a file var workbook new Excel Workbook workbook xlsx readFile filename then funct
  • ggplot2 +facet_:某些方面的反转轴?

    我想将三个子图组合成一个图 而分面将是一种自然的方法 然而 使用反转的 x 轴 这些子图之一会更容易 更自然地阅读 而我想不理会其他子图 有没有办法使用facet grid 或facet wrap 来完成此任务 我考虑过的另一种选择是 gr