问题标签 [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.
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
' 的努力来避免这种情况......)。
r - R tablegrob 条件格式,用于根据列值设置颜色
有没有办法根据条件格式对 tableGrob 或 gtable 对象的列和颜色(红色、黄色或绿色)进行条件格式化?例如:
我希望根据 Petal.Length 的值更改 Sepal.Width 并为其着色。如果 Petal.Length = 1.1 则将其设置为红色,如果为 1.4 则将其设置为黄色,如果为 1.7 则将其设置为绿色。
r - 同一pdf页面上的多个R ggplots
我有一个 4 列的输入数据框。
使用 for 循环,我想绘制mpg
vs cyl
,然后是mpg
vs vs
,然后是mpg
vs am
,在同一页面上生成 3 个不同的图。
我的代码(灵感来自Multiple ggplots on one page using a for loop 和 grid.arrange和ggplot2 :使用循环在一页上打印多个图):
输出:
r - cowplot:调用 plot_grid 后提取子图
我plot_grid
用来安排两个地块:
问题:有没有办法在调用 plot_grid后提取单个 ggplot 对象?例如,我想做这样的事情:
我知道对于这个特定的示例,在调用 plot_grid 之前从 p1 中删除图例是最简单的。但是,我要解决的问题要复杂得多,如果有一种通用的方法来解决这个问题,那将会很有帮助。
r - 如何将 summary() 的结果显示为绘图/grob?
背景:我有一个包含 50 多个特征的数据集,我想为每个特征生成一个箱线图、直方图和汇总统计数据,以用于演示目的。这使得 150 多个地块。我用来执行上述操作的代码是这样的:
我创建了一个图表列表,每 3 个元素代表每个特征的直方图、箱线图和摘要的结果。我遍历 50 多个功能中的每一个,将每个结果附加到我的列表中(我知道这不是最好的方法)。然后,当我尝试通过网格排列打印列表时遇到以下问题:
可以理解,因为汇总函数不会生成图形对象。除了根本不包括汇总统计数据之外,关于如何克服这一挫折的任何想法?
r - 如何将剪贴蒙版应用于ggplot中的geom?
我正在尝试将剪贴蒙版应用于 ggplot 中的几何图形以屏蔽部分数据,但保持轴、网格、其他几何图形和图例可见。我不想创建一个特定的情节,因此我不是在寻找一种用多边形掩盖情节的某些部分的解决方法。
这是我想效仿的那种设计(面具,不一定是主题,我现在该怎么做):
(来源)
另请参阅此示例
有人可能会争辩说,我可以过滤不包含在定义掩码的多边形中的数据。但是,虽然它适用于点,并且可以适用于多边形/线状对象,但它适用于栅格(边界不会完全遵循非垂直或非水平线)。所以我尝试了以下方法:
我能够使用这些包gridSVG
来定义一个剪贴蒙版,但是我很难将它应用到一个 ggplot 对象上,即使在使用ggplotGrob()
. 我无法将剪贴蒙版应用于 grob:
我的直觉是g_clipped
应该绘制,但我不能grid.draw()
,因为它是一个 clipPath 对象。这里写的那grid.draw()
行显示了没有被掩盖的情节。我想我不太了解 clipPath 对象的功能。
该功能grobify()
听起来可以帮助没有 gridSVG 的替代方法,请参阅此处的详细信息,但我不理解非常简约的文档。
由于我什至无法将剪贴蒙版应用于整个情节,因此我的目标还很遥远。
如果您可以帮助我了解如何应用剪贴蒙版gridSVG
或有替代解决方案将剪贴蒙版应用于特定几何图形,请告诉我。
r - r 将 png 设备的大小设置为 grob 大小
我创建了一个 tableGrob T
,这个 tableGrob 可以根据之前给出的参数改变大小。
有没有办法使用该png()
函数,以便从先前创建的 tableGrob 中获取宽度和高度参数
让我们这样说:
我收到一条消息,说 r 无法启动 png 设备和大约 50 个警告。
r - 将基本图转换为 grob,保持纵横比
我需要将 R 基础图转换为 grob,因此它可以叠加在一些ggplot
s 上。
我发现有几个功能可以做到这一点,ggplotify::as.grob
并且cowplot::plot_to_gtable
. 问题是,它们不保留原始基图的纵横比。由于所讨论的基础图是用包绘制的圆圈circlize
,因此我需要保留纵横比,否则不可能始终叠加在 ggplots 上。
这是一些示例代码来显示我在做什么:
任何人都可以帮忙吗?谢谢!