【问题标题】:Annotation_custom does not position table grob on the ggplot at specified positionAnnotation_custom 不在指定位置的 ggplot 上定位表 grob
【发布时间】:2021-02-01 11:36:42
【问题描述】:

我在ggplot2上绘制了一个汇总表,用

annotation_custom(tableGrob(SummaryTable), xmin=xmin ,xmax = xmax)

一切都很好,除了汇总表不遵循指定的确切数据位置,它需要通过查看图表来手动调整,并且对于它工作的每个不同的变量图表,但与 xmin 和 xmax 值有一些偏移。根据 R 中的帮助,xmin 和 xmax 是数据坐标。我只想将 grob 放在主图的右上角。这个项目中有很多图表,运行在相同的代码上。我可以手动将每个图表的中心设置为 xmin 和 xmax 值,但这样的工作很乏味,我想通过矢量化操作使其保持自动。

我已经看到很多问题都在问类似的问题,但总的来说(我能找到的)解决方案是使用其他方式,比如使用 gtable/viewport/ggsave 等。

我已经对我的工作进行了最后的润色,所以我首先需要确定 annotation_custom 是否可以很好地完成这项工作?当然,学习新的替代方案是理想的,这也是我们学习的方式,但请指出我现有的工作是否可以完成当前使用的解决方案。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    我想我可以理解 annotation_custom 的工作原理以及如何精确地动态居中位置。

    我再次深入阅读了 R 帮助,它指出: "annotation_custom 期望 grob 填充由 xmin、xmax、ymin、ymax 定义的整个视口。具有不同(绝对)大小的 Grob 将在该区域中居中对齐。Inf 值可用于填充整个绘图面板(参见示例)。”

    所以现在以这种方式解释,如果 xmin 和 xmax 的定义不同(不是 Inf 如此),则表格视觉应该被绘制为中心对齐,这意味着我当前的输出看起来正确但中心对齐。

    我现在制作了另一个向量,在我的例子中是 xmin=(Avg+Max)/2 和 xmax=Inf。所以至少表格打印是定义的位置。

    虽然我需要微调公式,以防只需要触及情节的极端。但我的目的达到了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多