使用facet_wrap和geom_segment删除不必要的y轴点

2024-03-22

我使用以下命令将 y 轴点映射到 x 轴geom_segment()然后使用facet_wrap将数据分成两个图;然而,y 轴点都显示在这两个图上。

我怎样才能只拥有与每个相关的必要的 y 轴点facet_wrap?

示例代码

dat <- structure(list(temp = c(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 
4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5), rev = c(-5, 
-11, -20, -29, -40, -9, -20, -32, -45, -57, -12, -24, -37, -50, 
-62, -7, -20, -36, -52, -67, -5, -13, -23, -35, -47, -12, -24, 
-36, -48, -58), type = c("Type 1", "Type 1", "Type 1", "Type 1", 
"Type 1", "Type 1", "Type 1", "Type 1", "Type 1", "Type 1", "Type 1", 
"Type 1", "Type 1", "Type 1", "Type 1", "Type 2", "Type 2", "Type 2", 
"Type 2", "Type 2", "Type 2", "Type 2", "Type 2", "Type 2", "Type 2", 
"Type 2", "Type 2", "Type 2", "Type 2", "Type 2"), model = c("A", 
"A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", "C", "C", 
"C", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "C", "C", 
"C", "C", "C")), .Names = c("temp", "rev", "type", "model"), row.names = c(NA, 
-30L), class = "data.frame")

p1 <- ggplot(dat, aes(temp, rev, color = model)) + 
  geom_line() + geom_point() + geom_segment(aes(x = 0, xend = temp, yend = rev), linetype = "dashed", color = "grey") + 
  facet_wrap(~type, scales = "free") + scale_y_continuous(breaks = dat$rev)
p1

Plot


我编造了虚拟数据,因为出于某种原因粘贴了你的dput进入我的控制台让它不高兴。

library(dplyr)

df <- expand.grid(temp = 1:5, model = LETTERS[1:3], type = 1:2) %>% 
  group_by(model, type) %>% 
  mutate(rev = -sort(sample.int(20, length(temp)))) 

# this is equivalent to your data as-is, structurewise

df.labeled <- df %>% 
  ungroup() %>% group_by(type, rev) %>% 
  mutate(label = c(rev[1], rep(NA, length(rev) - 1)))

在这里,我为每个组面板中显示的每个 y 值创建了一个组。然后我创建一个label由该 y 值的 1 个观察值组成的列,填充为NAs。因此,如果一个面板有两个模型,每个模型都有一个rev of -5,现在将是-5, NA代替-5, -5。我为什么这样做将在下面变得更清楚。


ggplot(df.labeled, aes(temp, rev, color = model)) + 
  geom_segment(aes(xend = 0, yend = rev), linetype = "dashed", color = "grey") +
  geom_text(aes(label = label, x = -0.1), colour = "black", hjust = 1) +
  geom_vline(xintercept = 0) +
  geom_point() + geom_line() + facet_grid(~type) + 
  scale_y_continuous(breaks = NULL) + 
  scale_x_continuous(limits = c(-0.5, NA)) +
  theme_bw() + theme(panel.grid = element_blank())

如果我保留了重复项(此处类型 1 为 -7、-15,类型 2 为 -11),则geom_text会是一个混乱的粗体模糊。重复的文本标签无法很好地呈现ggplot2。由于实际上不可能按照您想要的方式进行操作,因此这里我们只是为每个面板制作一个假比例。如果您不喜欢数字左侧 y 轴上有一条额外的线,可以将其删除:

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

使用facet_wrap和geom_segment删除不必要的y轴点 的相关文章

  • 合并具有一个共同元素的集合 R

    我有一个这样的列表 lista list lista 1 c 1 2 4 6 8 9 10 11 12 19 32 34 35 36 37 38 lista 2 c 7 8 lista 3 c 13 14 16 26 27 28 29 30
  • dmvnorm MVN 密度 - RcppArmadillo 实现比 R 包慢,包括一些 Fortran

    The solution现已上线RCPP画廊 http gallery rcpp org articles dmvnorm arma 我从 RcppArmadillo 中的 mvtnorm 包重新实现了 dmvnorm 我有点喜欢犰狳 但我
  • 读取并绘制从大文件中读取的数据

    我们有相当大的文件 大约为 1 1 5 GB 主要是日志文件 其中包含易于解析为 csv 的原始数据 随后应该将其绘制成图表以生成一组图形图像 目前 我们正在使用 bash 脚本将原始数据转换为 csv 文件 其中仅包含需要绘制图表的数字
  • 自定义 colorRampPalette 中的颜色条

    我定义了一个 colorRampPalette my colors colorRampPalette c light green yellow orange red 如何为其绘制颜色条 图例 项目 最好仅使用基本包 我正在寻找一个充满该颜色
  • 如何在R中使用OpenNLP获取POS标签?

    这是 R 代码 library NLP library openNLP tagPOS lt function x s lt as String x word token annotator lt Maxent Word Token Anno
  • 使用 X11 窗口的 R 脚本仅打开一秒钟

    我正在通过 Linux Mint 16 命令行运行 R 脚本 它包含我想在窗口中显示的箱线图 所以我使用 x11 函数来创建该窗口 这是我的代码 testdata lt data frame sample 1 1000 size 100 r
  • S4 类 [(子集)带有附加参数的继承

    这是一个扩展在 R 中的访问器函数中使用 callNextMethod https stackoverflow com q 24875284 2752888 2017 03 25 更新 为了说明如何仅在加载方法时失败 但在构建的包中时不会失
  • 使用 purrr::map() 更改和分配新变量名称

    我刚刚开始掌握编写函数并使用 lapply purrr map 使我的代码更加简洁 但显然还没有完全理解它 在我当前的示例中 我想重命名 lm robust 对象的系数名称 然后更改 lm robust 对象以合并新名称 我目前这样做 li
  • 按列分组的数据帧上 R 中的行之间的差异

    我希望通过 app name 获得不同版本的计数差异 我的数据集如下所示 app name version id count difference 这是数据集 data structure list app name structure c
  • 带有nearPoints()的动态ggplot图层闪亮

    我熟悉闪亮的基础知识 但在这里遇到了一些困难 我希望能够在单击某个点以突出显示该点时添加 ggplot 图层 我知道 ggvis 可以做到这一点 并且画廊中有一个很好的例子 但我希望能够使用nearPoints 捕获点击作为 ui 输入 我
  • Plotly 绘图不会在 RMarkdown 文档的 for 循环内渲染

    我正在尝试动态构建一个需要运行循环的报告 并为每次迭代打印一些消息 表格和绘图 我可以让一切正常运转except为了情节 示例 rmd r echo FALSE results asis fig keep all message FALSE
  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • grid.arrange 中的错误 -rangeGrob() 函数

    我有两个图 p1 和 p2 我试图使用 grid arrage 绘制它们 我的代码如下所示 grid arrange p1 p2 ncol 2 top textGrob Distribution across each day of the
  • 删除 R 中具有重复属性的行

    我有一个大数据框 其中包含以下列 ID time OS IP 该数据帧的每一行对应一个条目 在该数据框中对于某些IDs存在多个条目 行 我想删除这些多行 显然 同一 ID 的其他属性会有所不同 或者换句话说 我只想要每个 ID 一个条目 行
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • R 中的转换会导致文档错误

    每当我运行此代码时 tm map 行都会给我警告消息 警告信息 在 tm map SimpleCorpus docs toSpace 中 转换删除文档 texts lt read csv Data fast food Domino s Do
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country
  • 在ggplotly散点图中添加自定义数据标签

    我想显示Species对于每个数据点 当光标位于该点上方而不是 x 和 y 值时 我用iris数据集 另外 我希望能够单击数据点以使标签持久存在 并且当我在图中选择新位置时标签不会消失 如果可能的话 最基本的是标签 持久性问题是一个优点 这
  • 无法在 Document-Term-Matrix 中看到 `RTextTools::toLower()` 文本的结果

    我尝试创建一个矩阵 为此我想降低文本 为此 我使用此 R 指令 matrix create matrix tweets 1 toLower TRUE language english removeStopwords FALSE remove
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f

随机推荐

  • Python 或 PHP 中的感知哈希算法? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 相同运算符优先级的结合性 -- *start++

    为什么会出现下面的表达式 total start 评估为 total start And not total start though this doesn t really matter either it would be the sa
  • 有 Delphi XE2 样式库吗?

    在 XE2 中 有一个新函数 styles 用于 VCL vsf 和 Firemonkey styles 有些是在C Program Files Embarcadero RAD Studio 9 0 Redist styles目录 创建新样
  • 同步视图模型和视图

    我有一个由一些节点和一些连接器组成的视图模型 public class ViewModel public List
  • 更改滚动时的 URL 哈希并保持后退按钮正常工作

    在具有固定顶部菜单和锚点导航的一页布局上 我有一个 scrollspy 它可以更改滚动时的片段标 识符 根据滚动位置为菜单链接提供一个活动类 并使用 Velocity js 将滚动动画到锚点 不幸的是 它还做了什么 当单击浏览器后退按钮时
  • 在 JavaScript 中递归构建 Promise 链 - 内存注意事项

    In 这个答案 https stackoverflow com a 29906627 3478010 递归地构建承诺链 稍微简化一下 我们有 function foo function doo always return a promise
  • 将箭头放在 3d 图中的向量上

    I plotted the eigenvectors of some 3D data and was wondering if there is currently already a way to put arrowheads on th
  • 存储 ASP.NET 密钥、密码的安全方法

    存储网站密钥和 或密码的最佳实践是什么 这些密钥用于各种第 3 方 Web 服务 最好将它们放在 Web config 文件中 数据库中或以某种方式加密吗 您可以将加密值存储在 config 文件中 ASP NET 2 0 将即时解密它们
  • 如何查看我的 Redis 数据库 current_size?

    我知道 redis cli 以及 info 和 config 命令 但是 他们没有任何说明当前数据库大小的信息 我怎样才能弄清楚这一点 使用INFO命令 完整详细信息在这里 http redis io commands info http
  • VSCode 1.14.0 7月更新有重大问题:如何回滚?

    因此 新的 VSCode 更新版本 1 14 0 会导致以下主要问题 CPU 使用率高 导致冻结 随机崩溃 扩展不可用 IntelliSense 工作一半时间 所以我的问题是如何将 VSCode 回滚到以前的版本而不丢失我的配置 1 14
  • 如何测试放置在子文件夹中的 django 应用程序?

    我在测试分组在子文件夹中的 django 应用程序时遇到问题 好吧 让我解释一下情况 标准 django 项目结构如下所示 django project appname1 appname2 appname3 lib tests docs s
  • 将 NSColor 转换为 RGB

    我正在尝试将 NSColor 转换为 RGB 但它似乎给出了完全错误的结果 NSColor testColor NSColor colorWithCalibratedWhite 0 65 alpha 1 0 const CGFloat co
  • 输入类型提交与输入类型按钮

    我一直在尝试用 PHP 解决一个恼人的行为 我认为 也许你们中的一些人也遇到过同样的情况并有一些想法 我有一个 html 表单 并且使用一个带有 onClick 事件的元素来调用 javascript 函数 处理脚本的内容后 我执行 for
  • 可以更换大开关吗?

    我有一个名为 ReportController aspx 的页面 其目的是根据查询字符串参数实例化报告 类 switch Request QueryString Report case ReportA CreateReportAReport
  • Matplotlib rcparams (autolimit_mode) 用于单个图形

    我对新的 Matplotlib 2 0 0 有疑问 默认情况下 新的 autolimit mode 值会向框架添加填充 我想避免它变成一个数字 如果我更改 rcParams 则更改会影响任何生成的图形 我可以更改单个图形的此参数而不影响其余
  • 通过公式而不是脚本在单元格中使用 Google Sheets 文件名?

    有没有FORMULA这将在单元格中显示文件的名称 我找到了可以做到这一点的脚本 可以显示工作表名称的公式 但没有找到可以显示文件名的公式 如果我必须诉诸剧本 那就这样吧 但如果可能的话我想使用公式 如果以前有人问过这个问题 请指出该帖子 我
  • Object.values() 的替代版本

    我正在寻找替代版本Object values 功能 As 此处描述 https developer mozilla org en US docs Web JavaScript Reference Global Objects Object
  • 以数组形式遍历不平衡二叉树

    不平衡 或非堆 二叉树可以使用数组表示 如下所示 array 1 2 null 3 4 5 6 null 7 8 null 1 2 null 3 4 5 6 null 7 8 null 如何使用给定的数组进行树遍历 更具体地说 如何计算父母
  • 如何在颤振中的当前位置创建圆圈

    我正在开发 flutter 项目 我必须在谷歌地图上的当前位置上画一个圆圈 有人知道吗 我想要这样的颤振 提前致谢 此功能现已在 google maps flutter 包中提供 https pub dev documentation go
  • 使用facet_wrap和geom_segment删除不必要的y轴点

    我使用以下命令将 y 轴点映射到 x 轴geom segment 然后使用facet wrap将数据分成两个图 然而 y 轴点都显示在这两个图上 我怎样才能只拥有与每个相关的必要的 y 轴点facet wrap 示例代码 dat lt st