问题标签 [grob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
238 浏览

r - heightDetails 不适用于单位总和

我正在尝试使用 heightDetails() 找出 ggplot 图例的高度,但出现错误

UseMethod(“absolute.units”)中的错误:没有适用于“absolute.units”的适用方法应用于“unit”类的对象

示例:对于提取,我使用了此处建议的函数 g_legend :

所以假设我们有一个简单的条形图

, 我用

得到传说。is.grob(testlegend) 表明它确实是一个 grob,而 grid.draw(testlegend) 工作得很好。但是 heightDetails(testlegend) 给了我上面提到的异常。

我的猜测是 testlegend$heights 包含一个单位的总和,而 heightDetails 无法处理它。这是原因吗?如果没有,为什么它不起作用?检索图例高度的另一种方法是什么?

0 投票
1 回答
345 浏览

r - 在 ggplot2 图之间添加多条曲线

我有两个 ggplot2 图,我想在它们之间绘制一系列(10-100)略有不同的曲线。也就是说,我将有一个两个面板的布局,并想绘制从左图到右图的连接线。到目前为止,我已经尝试通过将事物转换为 grob 并使用 gtable 包添加曲线来做到这一点。

为了说明,我有类似的东西:

产生这样的情节:

输出

这几乎是正确的,只是只显示了最后一个 curveGrob 对象。我已经尝试过使用 z-index 来添加 grobs,最后一个绘制的总是会覆盖其他的。我希望我的绘图看起来一样,除了它应该显示两个绘图区域之间的所有 10 条曲线,而不仅仅是我现有代码中显示的那一条。

那么如何修改现有代码以显示所有 10 条曲线或使用不同的方法达到相同的效果呢?我坚持使用 ggplot2 作为主要情节,因为它们比所示的玩具示例复杂得多。

0 投票
1 回答
296 浏览

r - 有没有办法将 grob 直接保存到 rasterGrob?

我正在绘制几个ggplot2对象并将它们放在grid.arrange调用“pdf”设备的内部。我发现如果我先栅格化绘图,PDF 的性能会提高大约 10 亿倍(生成速度更快,渲染速度更快)。因此,在并行循环中,dlply我使用ggsave将. 将其放入列表中,然后将其绘制到 PDF 设备。ggplot2readPNGrasterGrobdlplydlplygrobsgrid.arrange

其中一些看起来很笨拙,所以总的来说,有更好的方法吗?但是真正困扰我的是当我对它们所做的只是将它们读回时,将它们写入磁盘。有没有办法将 grob 直接保存到 rasterGrob 中?

0 投票
1 回答
1069 浏览

r - 当两个组的标签相同时使用 directlabels::geom_dl

我有一个问题geom_dl(),它没有正确放置我的标签,因为两个组具有相同的标签。我知道

GeomDl 调用内部引起了麻烦,但我不知道如何解决它。

这是它目前的样子:

标签放置不正确

这就是它的样子:

这是数据和ggplot代码:

0 投票
2 回答
960 浏览

r - 使用 facet_grid 的每个子图的 y 轴

我无法得到这个问题的答案。我和那个用户想要的是在使用 facet_grid() 时向所有列添加轴刻度和标签。

分面时显示每个子图的 y 轴

当我运行可重现的示例和解决方案时(在添加 abc=as.data.frame(abc) 以修复初始错误之后)我收到一条错误消息

gtable_add_grob(g, grobs = list(segmentsGrob(1, 0, 1, 1), segmentsGrob(1, ) 中的错误:并非所有输入的长度都为 1 或与 'grobs 相同的长度

我制作了自己的可重现示例,因为原始示例是 ehhm,有点奇怪:-)。它导致相同的错误消息

答案应该是这样的:

0 投票
3 回答
1091 浏览

r - 使用arrangeGrob添加子图作为图例

我正在尝试将两个图绘制在一起,其中一个是主图,另一个是我希望位于主图的图例区域中的子图。

此代码生成此图:

在此处输入图像描述

我想做的就是摆脱主线的传说。

如果我添加guide=FALSEscale_fill_manual scale_colour_manual gLegend抛出错误:

显然是因为它不能正常"guide-box"

知道如何解决这个问题吗?

0 投票
1 回答
2423 浏览

r - 在 grobTree 中使用 linesGrob 绘制 ggplot 页脚

我创建了一个广泛的主题来绘制ggplot类似于五点三十八的情节。如果不使用ggthemes,我如何利用linesGrob在我的页脚上方绘制一条居中的线,并在不触及情节边缘的情况下穿过情节的 85%?我正在争取类似于这个情节的页脚。在此处输入图像描述

我可以编辑字体文本、颜色和大小,所以不用担心。

到目前为止,我所拥有的是:

这给了我这个。

在此处输入图像描述

我想我应该linesGrob()在我的页脚中使用grobTree(),但是每当我尝试这样做时,我都无法让它出现在我的情节中。我不确定我rectGrob()是否正在策划它或正在发生什么。

感谢您提供的所有帮助,如果您需要任何澄清,请告诉我。此外,如果我的任何代码写得不好,我一直在寻找建设性的批评,以使其变得更好!

0 投票
1 回答
3241 浏览

r - 在安排格罗布中使用 pheatmap

我正在尝试使用arrangeGrob() 在同一个.jpg 中绘制两个图。我才刚刚开始学习网格和 grob,我想我知道问题出在哪里:pheatmap 是一个网格对象并包含 grob 对象,不允许我将它放在安排格罗布中。这是真的?

我是否需要以某种方式将 qplot 放在一个网格中,将 pheatmap 放在一个网格中,然后将这些网格放在一个新的网格中?

上面的代码片段在使用时运行得很好

0 投票
1 回答
1766 浏览

r - R:ggplot 背景渐变着色

我想生成带有渐变颜色的 ggplot,填充绘图面板及其背景,如此处所示。

在此处输入图像描述

如您所见,渐变背景颜色包含绘图面板及其背景。目前,我只知道所需解决方案的“近似值”:

使用上面显示的代码,绘图面板会在轴边界内显示为渐变色,但它不会跨越具有这种渐变色的整体背景。theme(plot.background =...) 能够填充剩余的背景,但它似乎无法利用渐变色。进一步说明,应将相同的渐变着色应用于整个绘图背景。

任何建议将不胜感激。谢谢。

0 投票
0 回答
579 浏览

r - 有条件地格式化R中表格的着色

有没有办法在使用导出 PDFtableGrob时有条件地格式化单元格/行?gridExtra基于数据框中的条件数值,我希望为我的 PDF 输出更改行颜色背景/填充格式。

样本数据:

现在我有一个简单的主题来格式化输出:

这是我的快速 PDF 输出代码:

a列中和b样本数据中的数值实际上是成功和不成功的事件。我最终会很快找到成功百分比并将其添加到我的表中作为输出。

我希望实现的是格式化我的 PDF 中表格的整行,以便任何大于或等于 50% 的值df1都将被格式化为这种颜色:#C4122E如果低于 50%,则格式化为#1B458F