问题标签 [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 回答
309 浏览

r - R:绘制 textGrob 失败并出现神秘错误

我有四种不同类型的图形,每一种都转换成一个明显成功的 grob。我正在尝试使用 grid.arrange() 将它们组合成一个图像。四个之一——我会说四个中最简单的一个——会产生错误,即使没有其他三个。

这是traceback()

如果我从函数中删除scriptstyle和,我会得到同样的错误vjust,所以他们不是罪魁祸首。

我什至无法弄清楚错误来自什么函数。grid.Call.graphics 没有被导出,但grid:::grid.Call.graphics它的代码中没有类似的错误消息,也没有 doas.graphicsAnnot, resolveHJustresolveVJust.

我在这个问题上碰壁了。任何想法或建议如何解决这个问题或解决它都非常感谢。

全部在 Windows 7 下完成。

0 投票
2 回答
2972 浏览

r - 寻求 ggplot 2.2.0 破坏的 gtable_add_grob 代码的解决方法

在具有多个构面变量的图中,ggplot2 重复“外部”变量的构面标签,而不是在“内部”变量的所有级别上具有单个跨越构面条。我有一些代码,我一直在使用包中的单个跨越刻面条覆盖重复的外部刻面gtable_add_grob标签gtable

不幸的是,由于分面条的 grob 结构发生了变化,此代码不再适用于 ggplot2 2.2.0。具体来说,在 ggplot2 的先前版本中,每一行 facet 标签都有自己的一组 grobs。然而,在 2.2.0 版本中,看起来每个垂直的刻面标签堆栈都是一个单独的 grob。这破坏了我的代码,我不知道如何修复它。

这是一个具体的例子,取自我几个月前回答的一个 SO 问题

我们从一个包含三个层面的情节开始。

在此处输入图像描述

现在我们将用跨越条覆盖顶部的两个刻面条,这样我们就没有重复的条标签:

这就是这个情节在 ggplot2 2.1.0 中的样子:

在此处输入图像描述

但是,如果我用 ggplot2 2.2.0 尝试相同的代码,我会得到原始图,而条形标签没有任何变化。看看原始情节的 grob 结构就可以看出p为什么会发生这种情况。我已经粘贴在这个问题底部的 grob 表中。为了节省空间,我只包含了与刻面条相关的行。

查看该cells列,请注意,在 2.1.0 版本的绘图中,每行中的前两个数字是 3、4 或 5,表示 grob 相对于绘图中其他 grob 的垂直位置。在上面的代码中,tl参数gtable_add_grob设置为 3 或 4 的值,因为这些是我想用跨越条覆盖的刻面条行。

现在查看cells2.2.0 版图中的列:请注意,前两个数字始终为 6。还请注意,刻面条仅由 8 个 grobs 组成,而不是 2.1.0 版中的 24 个。在 2.2.0 版本中,似乎每个包含三个方面标签的堆栈现在都是一个单独的 grob,而不是三个单独的 grob。因此,即使我将tandb参数更改gtable_add_grob为 6,所有三个方面都被覆盖。这是一个例子:

在此处输入图像描述

所以,在冗长的介绍之后,这是我的问题:如何使用 ggplot2 版本 2.2.0 创建看起来像我使用gtable_add_grobggplot2 版本 2.1.0 创建的跨平面条?我希望有一个简单的调整,但如果它需要大手术,那也没关系。

ggplot 2.1.0

ggplot2 2.2.0

0 投票
0 回答
146 浏览

r - 使用 ggplot2、图形顺序、geom_bar 绘制条形图的 R 代码

我在函数中传递了分类变量,并且我想要多行中的 x-lables,因此我使用了我在 Internet 上获得的一个名为 addline_format in scale_x_discrete 的函数,请参阅下面的函数。当我也有空白值作为我知道我可以用 NA 或任何东西替换它但我想表示为空白的类别时,就会出现问题。ggplot 首先绘制空白值,这个 scale_x_discrete 最后给出空白值。

我创建的功能。

有没有办法让订单始终匹配。

当我有“日期”类型变量时会发生什么。我相信 addline_format 仅适用于 chr 类型变量。

0 投票
1 回答
191 浏览

r - 将 Gif 转换为 R 中的 grob 以与 ggplot 中的 annotation_custom 一起使用

我正在尝试导入 gif 并将其转换为 grob 以在 ggplot 中将其与函数 annotation_custom 一起使用,到目前为止,我已将其导入并能够将其转换为图像。

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

我得到一个列表,到目前为止我已经能够绘制它:

但我试图把它变成一个 grob:

或尝试

然后将其保存为 grob,但由于图像返回类 NULL 它不起作用。

我也尝试过使用 y 中的矩阵,但它得到了非常奇怪的颜色:

我真的需要原来的颜色

0 投票
2 回答
297 浏览

r - 格子的定位

我想在主图中绘制线性模型的数据,并将效果图(森林图)绘制为子图,使用arrangeGrob.

以下是数据:

ggplots:

这是: 在此处输入图像描述

并且是: 在此处输入图像描述

以下是我尝试将它们组合成一个情节的方法:

这使: 在此处输入图像描述

如何调整位置和尺寸以使其sub.plot更小(所有图层,例如文本按比例缩小),并位于图例下方main.plot

0 投票
1 回答
491 浏览

r - marrangeGrob 但无法添加图例

我使用 marrangeGrob() 而不是 facet_wrap() 从地块列表中生成地块。但是,我似乎无法添加图例。

我已经使用

但是,我无法将其添加到我的情节中。有人知道方法吗?

0 投票
1 回答
426 浏览

r - 防止 grid.arrange 使用 autoplot 压缩 grobs

我使用 grid.arrange() 用一列绘制 4 个折线图。如果尺寸很大,将文件另存为 .png 或 .pdf 时,grobs 看起来不错。但是,当我缩小绘图的高度时,顶部的 grob 会被压缩。

如何防止 grid.arrange 压缩 grobs?

一些丑陋的代码:

这是输出(我使用这个纵横比只是为了戏剧化顶部 grob 的压缩。): 在此处输入图像描述

0 投票
1 回答
1248 浏览

r - 在 ggplot2 的绘图中添加一个指向 x 轴的箭头

我的目标是获得一个带有指向我的 x 轴的文本的箭头来标记平均词频。我一生都无法弄清楚如何在ggplot2的绘图区域之外获得箭头或文本。

这是我的代码:

这是我的数据:

0 投票
1 回答
301 浏览

r - Estimate percentage of plot taken up by legend in ggplot2

I have some ggplot functionality, but I want to give users a warning in case they abuse it heavily. The problem is this: if there are many groups and the group names are long, the legend becomes so big it takes up the entire plot:

example of problem

But if I were to change the plot names I would get:

okayish

What I have is:

  • ggplot / ggbuild object
  • dimensions of plot window (480 x 320 default) but can be changed.

I want to use these to estimate the total area taken up by the legend (so I can send out a warning if the ratio legend size / plot size is too big). Here is some example code I used to create the figures:

I have the idea that the answer is somewhere in ggplotGrob(). However, I'm unfamiliar with grobs (and could not find clear documentation) and stranded at

which seems to give me a lot of information about the stuff I'm interested in. How do I convert this information into the total width the legend will take up? Many thanks in advance.

0 投票
1 回答
801 浏览

r - ggplot2 grid_arrange_shared_legend 共享轴标签

我正在使用 grid_arrange_shared_legend 将具有相同图例的图组合成一个图例和一个图例。有没有办法稍微编辑函数,使其也共享 x 和 y 轴标签?例如,如果我制作了 3 个图表并想要使用 grid_arrange_shared_legend 制作的这些图表的 3x1 网格,并且想要最底部的共享 x 轴标签和左侧的共享 y 轴标签,我该怎么做?这是我用于该功能的代码: