为什么 geom_text() 多次绘制文本?

2023-11-21

请考虑以下最小示例:

library(ggplot2)
library(ggrepel)
ggplot(mtcars) +
  aes(x = mpg, y = qsec) +
  geom_line() +
  geom_text(x = 20, y = 20, label = "(20,20)")

overplotted text

我想您可以很容易地看到文本“(20,20)”被严重过度绘制(实际上,我不知道这是否是正确的词。我的意思是文本在一个位置绘制了多次)。

如果我使用annotate(),这不会发生:

ggplot(mtcars) +
  aes(x = mpg, y = qsec) +
  geom_line() +
  annotate("text", x = 20, y = 20, label = "(20,20)")

no overplotted text

“那么,你为什么不使用annotate()那么呢?”你可能会问。实际上,我不想使用文本进行注释,但是labels。我还想使用 {ggrepel} 包来避免过度绘制。但是看看当我尝试这个时会发生什么:

ggplot(mtcars) +
  aes(x = mpg, y = qsec) +
  geom_line() +
  geom_label_repel(x = 20, y = 20, label = "(20,20)")

many many labels

同样,绘制了许多标签,并且 {ggrepel} 在防止它们重叠方面做得很好。但我只想one指向特定位置的标签。我实在不明白为什么会出现这种情况。我只提供了一个值x, y and label每个。我也尝试过data = NULL and inherit.aes = F并将值放入aes() within geom_label_repel()没有效果。我怀疑标签的数量与行的数量一样多mtcars。对于我的实际应用程序来说,这非常糟糕,因为我在相应的数据集中有很多行。

您能在这里帮助我,并简要解释一下为什么会发生这种情况以及您的解决方案为何有效吗?多谢!


将“check_overlap = TRUE”添加到 geom_text 以防止过度绘制。

library(ggplot2) 

ggplot(mtcars) +
        aes(x = mpg, y = qsec) +
        geom_line() +
        geom_text(x = 20, y = 20, label = "(20,20)", check_overlap = TRUE)

enter image description here

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

为什么 geom_text() 多次绘制文本? 的相关文章

  • 事后如何使用保存的.rds h2o模型进行预测?

    我使用 mlr 和 h2o 包创建了一个 R 模型 如下所示 library h2o rfh20 lrn makeLearner classif h2o randomForest predict type prob 完成模型调整 模型启动
  • 使用 lapply、Reduce 和 union 折叠 data.table 中的行

    我有一个 data table 示例 JACcar 它应该使用下面的代码根据 ID 折叠成一行 但是 我不明白为什么它不会折叠少于 2 行 我还尝试通过将列限制为仅包含 NA 以外的值的列来验证我的输出 因为原始数据中有 123 列 有人可
  • 基于两列对数据框中的行进行求和[重复]

    这个问题在这里已经有答案了 我想添加一列的值 将它们按两列分组 我找到了如何在一列上执行此操作 但无法弄清楚如何在两列上执行此操作 例如 如果我有以下数据框 x c a a b b c c a a b b c c a a b b c c y
  • 将 Excel 数字日期重新格式化为 R 日期

    希望将从 Excel 中提取的列重新格式化为包含数字 Excel 格式 例如 40182 的数据框 as date 40182 origin 1899 12 30 format b Y Returns 1 2070 年 1 月 5 日 我正
  • 如何使用“downloadHandler”在闪亮的可反应内部创建下载按钮?

    我创建downloadlinksa 的行内reactable 我这样做是为了DT datatable and a reactable reactable 我还创建了相应的output downloadHandler在 ids 上使用 app
  • ggplot2 geom_function 可以跨 arg 值进行分面吗?

    我想通过分面 geom function 创建 ggplot2 图 以便函数的参数在网格中变化 例如像这样的东西 my function lt function x par if par 1 return sin x else return
  • 连接路径的函数?

    是否有现有的函数来连接路径 我知道实施起来并不困难 但仍然 除了照顾尾随 or 我需要注意正确的操作系统路径格式检测 即我们是否编写C dir file or dir file 正如我所说 我相信我知道如何实施它 问题是 我应该这样做吗 现
  • R:交换两个变量而不使用第三个变量

    我有两个变量 即 a lt 1 b lt 2 我想交换他们的价值观 是否有任何内置的 R 函数能够执行该操作 或者是否有其他优雅的方式 而不使用第三个 临时 变量 Note 如果可能的话适用于字符串或其他数据类型 有一个通用的解决方案或 技
  • 在 Shiny 应用程序中更改 bsModal 的背景

    我正在开发一个 Shiny 应用程序 我需要确保最终用户不会意外关闭 bsModal 因为它上面有一些操作按钮 我做了一些研究并了解到我需要覆盖背景和键盘参数 但即使我看到了一些建议 我也不知道这到底需要放在我的代码中的哪里 我不精通 Ja
  • 闪亮的传单添加大量分离的折线

    我有一个 200k 行数据集 其中包含出发地和目的地的坐标 我有一个 R 闪亮的应用程序 带有传单地图 可以在这些坐标上显示圆圈 尽管坐标数量很大 但效果很好 这是数据的简化示例 每行包含出行id 出发地经纬度 目的地经纬度 id lat
  • 为什么表达式“1”==1 的计算结果为 TRUE? [复制]

    这个问题在这里已经有答案了 1 是字符值 其他1是数字 甚至 当我尝试在下面执行时 它给了我 TRUE as character 0 as numeric 0 谁能帮助我理解 为什么 来自help 如果两个参数是不同类型的原子向量 则其中一
  • ggplot2中的两列分组

    是否可以按两列分组 于是叉积就画出来了 经过geom point and geom smooth 例如 frame lt data frame series lt rep c a b 6 sample lt rep c glass wate
  • R:适合显示具有倾斜计数的数据的图

    我有这样的数据 Name Count Object1 110 Object2 111 Object3 95 Object4 40 Object2000 1 因此 只有前 3 个物体的计数较高 其余 1996 个物体的数量少于 40 个 其中
  • 挑战:优化取消列出[简单]

    因为 SO 最近有点慢 所以我发布了一个简单的问题 如果大鱼们能在这场比赛中留在替补席上并给新秀们一个回应的机会 我将不胜感激 有时我们的对象具有大量的大列表元素 向量 您如何将这个对象 取消列出 到单个向量中 证明你的方法比unlist
  • 闪亮的仪表板侧边栏中的可折叠菜单项

    我的侧边栏中有两个菜单项 目前 如果我单击任何菜单项 则会显示所有菜单项的选项卡项 我想让它可折叠 如果我单击多个名称菜单 单个分析应该折叠 如果我单击单个分析 多个分析应该折叠 目前的设计是 相同的可重现代码是 library shiny
  • 使用 xtable 对乳胶输出的表进行排序

    我正在尝试生成一个排序表并导出到乳胶中 然而 xtable 似乎无法处理排序表 建议 a lt sample letters 500 replace T b lt table a c lt sort table a decreasing T
  • Dplyr 过滤多个类似条件

    我正在尝试在 dplyr 中做一个过滤器 其中的列就像某些观察结果 我可以使用 sqldf 作为 Test lt sqldf select from database Where SOURCE LIKE ALPHA OR SOURCE LI
  • do.call 的 envir 选项如何工作?

    的文档do call states If quote is FALSE 默认值 然后对参数进行求值 在调用环境中 而不是在envir 这句话向我暗示 当quote FALSE 指定envir没有什么区别 然而 事实并非如此 事实上我遇到过需
  • 缩放geom_密度以将geom_bar与y上的百分比相匹配

    因为我对数学感到困惑上次我尝试问这个问题 https stackoverflow com questions 32412805 ggplot2 histogram with density curve that sums to 1 这是另一
  • 使用 sprintf 打印换行符 - 有光泽

    我试图在打印时进行换行 这是我的代码 temp lt LETTERS 1 11 print sprintf Rank s s n 1 11 temp output 1 Rank 1 A n Rank 2 B n Rank 3 C n Ran

随机推荐

  • jQuery 单击文档事件但忽略 div

    我正在使用 jQuery 制作在线幻灯片 我使用 document click 事件来检测用户何时单击页面 以了解何时显示幻灯片中的下一个项目符号点或移至下一页 我遇到的问题是我的工作让我在页面底部插入一个评论框 当有人单击评论框或保存评论
  • 使用 openssl 链接编译 Qt5 时出错

    我的头很快就会爆炸 我想用 openssl linked 编译 qt 以便 openssl 库链接到 qt 库中 我已经尝试了很多选项 编译时的输出始终是 ssl qsslcertificate openssl cpp In functio
  • Thymeleaf th:href 参数中的条件

    所以我的 Thymeleaf 模板中有一个元素 其中有一个如下所示的链接 th href search searchType parameter1 parameter1 parameter10 parameter10 根据目前的实施情况pa
  • 为什么在 JavaScript 中使用 {} != ( {} )?

    众所周知 是定义对象的更短方法 例如 用于数组 但现在我想知道为什么 计算结果为未定义 评估为 正确 对象 为什么 JavaScript 会有这样的行为 例如1等于 1 所以为什么 不等于 这是一个语法错误 语法错误 意外的标记 就是这样暧
  • 如何从目录中获取子文件夹中的文件

    您好 我必须从目录中的指定路径获取文件 这是我写的方法 但我没有从子文件夹中获取文件 Private void getfiles Directoryinfo info new Directoryinfo configurationmanag
  • 完全覆盖的代码的 EclEmma 覆盖率是否可以低于 100%?

    我只是编写了一些简单的示例代码来确保我正确安装了 EclEmma 我没有获得 100 的覆盖率 我不明白为什么 突出显示意味着它与类名有关 这是我的代码 以及相应的 JUnit 测试 EclEmma 突出显示了它 覆盖率结果显示 三个指令A
  • Tkinter grid_forget 正在清除框架

    from tkinter import from PIL import ImageTk Image root Tk root title Image Viewer def buttonforward image number global
  • 此按钮单击在 WPF MVVM 中如何工作?

    我开始研究WFM MVVM模式 但我不明白为什么会这样Buttonclick 无需绑定任何事件或操作即可工作 View
  • SwiftUI 自定义 TextField 与 UIViewRepresentable 与 ObservableObject 和推送视图的问题

    我创建了一个UIViewRepresentable包裹UITextField对于 SwiftUI 所以我可以例如当用户点击回车键时更改第一响应者 这是我的 UIViewRepresentable 我删除了第一响应者代码以保持简单 struc
  • 使用 ngTemplateOutlet 基于值而不是变量的动态模板

    我正在尝试模拟一组动态问题 想想一个测验 其中一个问题是多项选择 第二个是单一答案 第三个是是否 等等 使用 Angular 4 1 我认为使用 ngTemplateOutlet 进行模板化将是最好的方法 这个想法是我可以将所有复选框的样式
  • Haskell 中判断一棵树是否为二叉搜索树

    type BSTree a BinaryTree a data BinaryTree a Null Node BinaryTree a a BinaryTree a deriving Show flattenTree BinaryTree
  • 在字符串中使用变量

    在 PHP 中我可以执行以下操作 name John var Hello name gt Hello John C 中是否有类似的语言结构 我知道有String Format 但我想知道是否可以在不调用字符串上的函数 方法的情况下完成 在
  • 在 Windows 中安装 scipy 包

    我想安装 scipy 软件包 我知道这是一个重复的问题 但我已经尝试了所有这些 但没有找到合适的解决方案 当写这个 导入 scipy它执行成功 但是当我尝试这个时 import scipy spatial 我收到这条消息 Traceback
  • 如何更改导航栏标题位置?

    我已经设法使用自己的导航栏更改导航栏高度 但标题仍然居中 我希望它位于距左侧 72px 的位置 override func sizeThatFits size CGSize gt CGSize return CGSizeMake UIScr
  • 使用 XDocument 获取大写的 UTF-8

    我需要在我正在制作的 XML 文档的顶部有 XML 编码和版本XDocument 我有这个 但它是小写的 并且需要是大写的 我需要做什么 我使用以下方法声明一个新的 XML 文档XDocument名为 doc 的类 我使用以下命令将其保存到
  • 是否可以覆盖请求中的默认套接字选项?

    我使用优秀的 python 请求库为 REST API 编写了一个非常简单的客户端 一切工作都很好 我通过负载平衡器运行客户端 负载平衡器可以正常检测空闲的 tcp 连接并终止它们 我希望我的客户端使用一些与我的平台 Linux 上的默认选
  • 使用 dlopen 和 dlsym 以及 -fPIC 编译 C 程序

    我遇到了符号解析错误的问题 我的主程序使用 dlopen 加载共享库 并使用 dlsym 加载其中的符号 程序和库都是用 C 编写的 库代码 int a int b return b 1 int c int d return a d 1 为
  • 16 位浮点数和 GL_HALF_FLOAT

    我正在寻找 编写一个 16 位浮点数的 C 实现 以便与 OpenGL 顶点缓冲区 纹理坐标 法线等 一起使用 到目前为止 这是我的要求 必须是 16 位 显然 必须能够使用 GL HALF FLOAT 上传到 OpenGL 顶点缓冲区 必
  • 使用 Raphael.js 在图像上绘图

    我可以将 Raphael js 画布放在IMG元素 我应该怎么做才能使这个布局发挥作用 只需使用普通 CSS 技术将 Rapha l 画布放置在图像元素的顶部即可 wrapper position relative padding 0 ou
  • 为什么 geom_text() 多次绘制文本?

    请考虑以下最小示例 library ggplot2 library ggrepel ggplot mtcars aes x mpg y qsec geom line geom text x 20 y 20 label 20 20 我想您可以