gpt4 book ai didi

r - 如何从 grid/grDevices 中删除最后一页?

转载 作者:行者123 更新时间:2023-12-02 16:18:25 27 4
gpt4 key购买 nike

有没有办法删除使用grid.newpage()创建的最后一个页面或将图形设备恢复到添加最后一个绘图之前的状态?

背景:

我编写了一个函数,该函数将一个图层(例如geom_label)添加到现有的ggplot,其中数据点的位置基于绝对绘图尺寸(例如英寸/行),而不是数据范围。

过程是:生成绘图,在当前设备上打印它,测量打印的数据 block 并使用相关统计数据增强要绘制的数据框(例如,每个面板的坐标系原点、每英寸或每英寸的相对单位)行),使用附加层创建新绘图,并使用这些新变量计算出美学,打印最终绘图。

主要目的是拥有一个工具,即使在使用方面或分组变量时,也可以将附加文本/标签与绘图区域内的摘要统计数据很好地对齐。

问题是,除了进行测量之外,我并不真正使用的绘图生成了不必要的页面,并且我没有找到任何 gridgrDevices 方法删除最后打印的页面。你知道有这样的功能吗?

有一些潜在的有缺陷的解决方法:在不调用 grid.newpage() 的情况下打印新的 ggplot 对象(但您不再简单地 print(plot) code>),或者在具有与目标设备相同参数的临时设备中绘制第一个图(但它不是通用的,并且每个设备需要不同的方法;例如,.png 和 multipade .PDF 的解决方案会有所不同)。

最佳答案

网格单元已经允许您将对象放置在面板中的固定位置,

library(ggplot2)
library(grid)

ag <- grobTree(textGrob('+', x = unit(3,"cm"), y=unit(1,'npc') - unit(1,'in')))

qplot(1:10,1:10) +
annotation_custom(ag)

关于r - 如何从 grid/grDevices 中删除最后一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51381635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com