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

r - 将 ggplot2 轮廓从其他方面移动到主要方面

我有 x,y,z 数据,其中包含促进方面的分类变量。我想包括除第一个方面之外的所有轮廓线并丢弃其余数据。可视化该过程的一种方法是对数据进行刻面,并在心理上将轮廓从其他刻面移动到第一个刻面。

MWE:

在此处输入图像描述

在每个方面,我都有:

  • 刻面 0:X、Y、Z 为w==0L,轮廓为w==0L
  • 方面 1:X、Y、Z 为w==1L,轮廓为w==1L
  • 方面 2: X,Y,Z 用于w==2L, 轮廓用于w==2L

我想要的是一个单一的窗格,有效地:

  • X,Y,Z for ,分类w==0L的所有值的轮廓w

在此处输入图像描述

(原谅我草率的 GIMP 技能。在真实数据中,轮廓可能不会重叠,但我认为这不是问题。)

z对于相同的 X、Y 系统,真实数据具有不同的值(和梯度) ,因此轮廓与第一个面兼容。然而,它仍然是“不同的”,所以我不能用单个w==0L数据来模拟轮廓。

我想可能有几种方法可以做到这一点:

  • 第一次“正确”形成数据,告知ggplot如何拉动轮廓但将它们放在单个图上(例如,data=对某些层使用不同的);
  • 形成多面图,从其他方面提取轮廓,将它们应用于第一个方面,并丢弃其他方面(可能使用grid和/或gtable);也许
  • (我自己数学计算轮廓并将它们添加为独立的线;我希望重新使用ggplot2' 的努力来避免这种情况......)。
0 投票
1 回答
622 浏览

r - R tablegrob 条件格式,用于根据列值设置颜色

有没有办法根据条件格式对 tableGrob 或 gtable 对象的列和颜色(红色、黄色或绿色)进行条件格式化?例如:

我希望根据 Petal.Length 的值更改 Sepal.Width 并为其着色。如果 Petal.Length = 1.1 则将其设置为红色,如果为 1.4 则将其设置为黄色,如果为 1.7 则将其设置为绿色。

0 投票
1 回答
545 浏览

r - 同一pdf页面上的多个R ggplots

我有一个 4 列的输入数据框。

使用 for 循环,我想绘制mpgvs cyl,然后是mpgvs vs,然后是mpgvs am,在同一页面上生成 3 个不同的图。

我的代码(灵感来自Multiple ggplots on one page using a for loop 和 grid.arrangeggplot2 :使用循环在一页上打印多个图):

输出:

0 投票
0 回答
251 浏览

r - cowplot:调用 plot_grid 后提取子图

plot_grid用来安排两个地块:

问题:有没有办法在调用 plot_grid提取单个 ggplot 对象?例如,我想做这样的事情:

我知道对于这个特定的示例,在调用 plot_grid 之前从 p1 中删除图例是最简单的。但是,我要解决的问题要复杂得多,如果有一种通用的方法来解决这个问题,那将会很有帮助。

0 投票
1 回答
509 浏览

r - 如何将 summary() 的结果显示为绘图/grob?

背景:我有一个包含 50 多个特征的数据集,我想为每个特征生成一个箱线图、直方图和汇总统计数据,以用于演示目的。这使得 150 多个地块。我用来执行上述操作的代码是这样的:

我创建了一个图表列表,每 3 个元素代表每个特征的直方图、箱线图和摘要的结果。我遍历 50 多个功能中的每一个,将每个结果附加到我的列表中(我知道这不是最好的方法)。然后,当我尝试通过网格排列打印列表时遇到以下问题:

可以理解,因为汇总函数不会生成图形对象。除了根本不包括汇总统计数据之外,关于如何克服这一挫折的任何想法?

0 投票
1 回答
903 浏览

r - R图形:如何使VennDiagram中的对象与cowplot plot_grid兼容?

我正在使用 VennDiagram 包制作维恩图。他们出来了:

在此处输入图像描述 在此处输入图像描述

但是,如果我尝试使用 cowplot 的 plot_grid() 将它们并排绘制,就会发生不好的事情:

draw.pairwise.venn()没有使对象与plot_grid().

所以我想我需要将 gList 变成 ggplot 对象或其他兼容的东西,即使它gList被列为合适的类型。我找不到任何东西。我想使用cowplot,因为它能够很好地标记要发布的子图。

0 投票
2 回答
1760 浏览

r - 如何将剪贴蒙版应用于ggplot中的geom?

我正在尝试将剪贴蒙版应用于 ggplot 中的几何图形以屏蔽部分数据,但保持轴、网格、其他几何图形和图例可见。我不想创建一个特定的情节,因此我不是在寻找一种用多边形掩盖情节的某些部分的解决方法。

这是我想效仿的那种设计(面具,不一定是主题,我现在该怎么做):

在某些图层上带有中央圆形剪贴蒙版的地图

来源

另请参阅此示例

有人可能会争辩说,我可以过滤不包含在定义掩码的多边形中的数据。但是,虽然它适用于点,并且可以适用于多边形/线状对象,但它适用于栅格(边界不会完全遵循非垂直或非水平线)。所以我尝试了以下方法:

我能够使用这些包gridSVG来定义一个剪贴蒙版,但是我很难将它应用到一个 ggplot 对象上,即使使用ggplotGrob(). 我无法将剪贴蒙版应用于 grob:

我的直觉是g_clipped应该绘制,但我不能grid.draw(),因为它是一个 clipPath 对象。这里写的那grid.draw() 行显示了没有被掩盖的情节。我想我不太了解 clipPath 对象的功能。

该功能grobify()听起来可以帮助没有 gridSVG 的替代方法,请参阅此处的详细信息,但我不理解非常简约的文档。

由于我什至无法将剪贴蒙版应用于整个情节,因此我的目标还很遥远。

如果您可以帮助我了解如何应用剪贴蒙版gridSVG或有替代解决方案将剪贴蒙版应用于特定几何图形,请告诉我。

0 投票
1 回答
254 浏览

r - r 将 png 设备的大小设置为 grob 大小

我创建了一个 tableGrob T,这个 tableGrob 可以根据之前给出的参数改变大小。

有没有办法使用该png()函数,以便从先前创建的 tableGrob 中获取宽度和高度参数

让我们这样说:

我收到一条消息,说 r 无法启动 png 设备和大约 50 个警告。

0 投票
2 回答
1794 浏览

r - 仅在 ggplot 的一个方面创建自定义注释

有没有办法指定 acustom_annotation仅适用于 ggplot 的一个方面?

例如,如果我运行以下代码

我明白了

在此处输入图像描述

我怎样才能只保留最右边的红色“文本”注释而不将“文本”注释添加到前两个方面?注意我不能使用geom_text或者annotate因为我需要使用 textGrob 的相对文本定位

0 投票
1 回答
2216 浏览

r - 将基本图转换为 grob,保持纵横比

我需要将 R 基础图转换为 grob,因此它可以叠加在一些ggplots 上。

我发现有几个功能可以做到这一点,ggplotify::as.grob并且cowplot::plot_to_gtable. 问题是,它们不保留原始基图的纵横比。由于所讨论的基础图是用包绘制的圆圈circlize,因此我需要保留纵横比,否则不可能始终叠加在 ggplots 上。

这是一些示例代码来显示我在做什么:

任何人都可以帮忙吗?谢谢!