ggplot2 方面的问题和关闭裁剪

2024-03-30

过去可以通过关闭剪裁将文本放置在绘图边缘。在 ggplot2_2.2.0 中,这在使用构面的图中似乎不再可能了(但如果不使用构面,仍然可以工作)。我发布了一个问题here https://github.com/tidyverse/ggplot2/issues/1929但尚未得到解决。在此期间任何解决方法的想法将不胜感激!

这是一个最小的(非)工作示例:

library(ggplot2)
library(grid)

df.plot = data.frame(x = 1, y = 1, facet = 'facet', stringsAsFactors = F)
df.text = data.frame(x = 1, y = -0.3, label = 'test', facet = 'facet', stringsAsFactors = F)

p = ggplot(df.plot,aes(x = x, y = y))+
  facet_grid(~facet)+ # 'test' is only printed outside of the plot if faceting is turned off
  geom_point()+
  geom_text(data = df.text,aes(x=x,y=y,label=label))+
  coord_cartesian(xlim = c(0, 2),ylim=c(0,2),expand=F)+
  theme(plot.margin=unit(c(2,2,2,2),"cm"))
gt = ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name=="panel"] = "off"
grid.draw(gt)

看来随着合并这个拉取请求 https://github.com/tidyverse/ggplot2/pull/2539,现在可以进行可配置的裁剪ggplot2.

我想你只需要添加clip = "off" in the coord_cartesian功能。所以这应该解决做的需要gt = ggplot_gtable(ggplot_build(p))其次是gt$layout$clip = "off".

也就是说,这应该足够了(测试过ggplot2版本3.1.0):

p = ggplot(df.plot,aes(x = x, y = y))+
  facet_grid(~facet)+
  geom_point()+
  geom_text(data = df.text,aes(x=x,y=y,label=label))+
  coord_cartesian(xlim = c(0, 2),ylim=c(0,2),expand=F, clip = "off")+ # added clip = "off"
  theme(plot.margin=unit(c(2,2,2,2),"cm"))

或者,正如我在在 ggplot 中使用构面在绘图区域外注释一次 https://stackoverflow.com/a/54189807/5193830,你可以利用cowplot::draw_label:

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

ggplot2 方面的问题和关闭裁剪 的相关文章

  • 替换列表列表中的元素

    The applyR 中的函数是简化 for 循环以获得输出的好方法 是否有一个等效的函数可以帮助人们在替换向量的值时避免 for 循环 通过示例可以更好地理解这一点 Take this list for example x list li
  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 将命名参数列表传递给函数?

    我想编写一个小函数来从适当的分布生成样本 例如 makeSample lt function n dist params values lt makeSample 100 unif list min 0 max 10 values lt m
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • 删除ggplot2中的负图区域[重复]

    这个问题在这里已经有答案了 如何删除 ggplot2 中 x 轴和 y 轴下方的绘图区域 请参见下面的示例 我尝试了几个主题元素 panel border panel margin plot margin 但没有任何运气 p lt ggpl
  • 计算每个唯一值出现的次数

    假设我有 v rep c 1 2 2 2 25 现在 我想计算每个唯一值出现的次数 unique v 返回唯一值是什么 但不返回它们的数量 gt unique v 1 1 2 我想要一些能给我的东西 length v v 1 1 25 le
  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • kernlab 中 SVM 训练之外的核矩阵计算

    我正在开发一种新算法 该算法可以生成修改后的核矩阵以用于 SVM 训练 但遇到了一个奇怪的问题 出于测试目的 我比较了使用 kernelMatrix 接口和普通内核接口学习的 SVM 模型 例如 Model with kernelMatri
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • r 中训练和测试数据的最小最大缩放/归一化

    我正在创建一个函数 它将训练集和测试集作为其参数 最小 最大缩放 标准化并返回训练集并使用这些same最小值和最小 最大范围的值 标准化并返回测试集 到目前为止 这是我想出的功能 min max scaling lt function tr
  • 将数据框中重叠的范围合并到唯一的组中

    我有一个 n 行 3 的数据框 df lt data frame start c 178 400 983 1932 33653 end c 5025 5025 5535 6918 38197 group c 1 1 2 2 3 df sta
  • 更改闪亮 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 文档配合良好 但与其他文档配合使用时却得到这

随机推荐

  • ruby on Rails + xampp + mysql (Windows 7)

    我正在尝试在 Windows 7 上将 xampp 中包含的 mysql 包与 ruby on Rails 一起使用 但似乎无法让它们一起工作 我有 Rails 3 0 0 和 xampp 1 7 3 Rails 在 xampp 中与 sq
  • 使用Python Mock库来监视内部方法调用

    我正在使用 Python 模拟模块进行测试 我想监视活动对象发出的内部方法调用 我发现 wraps kwarg 可用于设置一个模拟来监视对活动对象的方法调用 使用 Python 模拟来监视对现有对象的调用 https stackoverfl
  • 有谁在 PyCharm 中拥有以下库的“文档 URL”:

    我是 PyCharm 和其他 Jetbrains IDE 的 快速文档 功能的粉丝 但它需要知道每个库的特定 文档 URL 该功能在Preferences gt Tools gt Python External Documentation设
  • 识别 WCF 服务中的客户端

    我有一个工作双工 WCF 服务WSDualHttpBinding 我的问题是找到一种方法来存储具有唯一 ID 的回调通道 该服务旨在长期运行 我可以简单地抓住OperationContext Current GetCallbackChann
  • 如何将参数传递给 HttpInterceptor?

    我正在使用 Angular 4 3 1 和 HttpClient 有一个 HttpInterceptor 来设置一些标头 在某些 http get 请求中 我需要设置不同的标头 无论如何 我可以将一些参数传递给该特定 HttpRequest
  • 如何滚动到页面中间(50%)

    如果不使用流行的scrollTo插件 我如何滚动到页面 div的垂直中间 50 这会将 div 的地狱卷轴滚动到其垂直中间 var myDiv yourdiv var scrollto myDiv offset top myDiv heig
  • 为什么要使用 Handlers 而 runOnUiThread 会做同样的事情?

    我都遇到过Handlers http developer android com reference android os Handler html and 在UiThread上运行 http developer android com r
  • SMT中量化算术推理的局限性是什么?

    我在以下看似微不足道的基准测试中尝试了几种 SMT 求解器 CVC3 CVC4 和 Z3 set logic LIA set info smt lib version 2 0 assert forall x Int forall y Int
  • 如何将反斜杠参数传递给脚本?

    我只想在文本文件中附加用户输入参数 我正在使用以下命令 echo 2 gt gt db txt 2希望用户设置如下路径 D Projects MyProject 它写入文件 但不带反斜杠 结果是 D 项目我的项目 我找不到任何地方可以解决这
  • Android 从后台弹出带有动画的片段

    我有一个在其中加载片段 A 的活动 片段 A 包含 ListView 当单击列表项时 我加载另一个片段 B 代替片段 A 以显示列表视图项详细信息 单击按钮并按下设备后退按钮时 它会加载上一个片段 即显示 ListView 的片段 A 所有
  • 在 jQgrid 中加载本地 JSON 数据,无需 AddJsonRows

    我正在使用 addJsonRows 方法将本地数据添加到 jQgrid 由于此方法禁用排序 我需要另一个解决方案 一个限制 我无法设置 url 并从服务器获取数据 因为数据是通过另一个组件传递的 下面的片段揭示了这个案例 注释行显示了限制
  • WSO2 API Manager 的跨域问题

    我们为客户开发了一些API 并通过API Manager发布了它们 我们为客户提供了一些运行良好的 PHP 代码示例 唯一的问题是他们通过 AJAX 在与 AM 相关的域不同的域中使用这些 API 这是跨域问题吗 我尝试使用以下标头在 AP
  • VS Code 代码补全可以配置为接受标点符号建议吗?

    这个问题特别针对其他转向 VS Code 中的 TypeScript 的 C 开发人员 我爱上了 VS C 中的代码完成功能 为了说明这一点 假设我正在尝试写 console log hello 使用 C 我会 输入 con 将出现建议列表
  • 德尔福。 Memo/RichEdit 的类似物

    有人知道是否有 Memo RichEdit 的类似版本吗 需求 对行进行编号 从流中加载大文件 超过 5 MB 开发者快讯 http www devexpress com Products VCL 有一组广泛的 VCL 组件 其中包括 Me
  • 从网络掩码获取 CIDR

    我想出了这个来计算CIDR https en wikipedia org wiki Classless Inter Domain Routing但我很确定这不是最快的方法 public int MaskToCIDR IPAddress ip
  • 在 Ionic React 中隐藏登录屏幕上的选项卡

    我从 cli 创建了一个带有选项卡启动模板的离子反应应用程序 并向现有结构添加了登录功能 我做了什么 App tsx const App React FC gt
  • 如何使用nodejs更新mysql中的多列

    如何使用node js更新MySQL中的多列 var query UPDATE employee SET profile name WHERE id connection query query req name req id functi
  • 如果存储库中存在更新版本的依赖项,如何使 Maven 构建失败?

    好吧 问题是我希望 maven 检查构建时的依赖版本 并警告我是否有任何较新的依赖版本 事实上 如果我使用某些模块的过时版本 请通知我 我的 Maven 模块 A 有以下依赖项
  • Android CDT:可以在没有 bash 的情况下使用 ndk-build (Windows 中的 Eclipse)吗?

    我在 Windows 上使用 android ndk 版本 r7b 我听说从这个版本开始 您不需要 cygwin 或 bash 来运行 ndk build 可执行文件 但也许我错了 无论如何 我似乎无法仅使用 ndk build 作为命令行
  • ggplot2 方面的问题和关闭裁剪

    过去可以通过关闭剪裁将文本放置在绘图边缘 在 ggplot2 2 2 0 中 这在使用构面的图中似乎不再可能了 但如果不使用构面 仍然可以工作 我发布了一个问题here https github com tidyverse ggplot2