问题标签 [gtable]
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 - 如何在 pdf 的多页上绘制多个 ggplot_gtable 对象?
这不是一个重复的问题,尽管标题可能看起来相似。
假设我有一个函数 f1(),它会绘制一次“gTable,grob,gDesc”类的对象。我正在使用 grid.draw() 来绘制对象。
所以当我们打电话时:
这将给出我想要的一页pdf。
但是,当我想通过代码在一个 pdf 中绘制两个图时:
我得到的是一个只有第二个情节的单页pdf。这是第一个情节被第二个情节覆盖。为了克服这个问题,我使用了 grid.newpage() ,但这会在 pdf 中添加一个额外的空白页。如何避免这种情况?只有设置了参数,我才能使用额外的参数来创建新页面。但是,我们还有其他选择吗?
我玩过 grid.arrange() 以及 pdf() 中的 onefile 参数,但没有任何效果。
此外,当我尝试在 R 绘图窗口上绘制这些内容时,它会覆盖现有的打开图形设备。所以在第二次绘制后,我无法使用后退箭头查看第一个图。 R绘图窗口的后退箭头
编辑:示例 R 代码绘制类“gTable,grob,gDesc”的对象
这是一个示例函数。因此,如果我调用以下代码:
在上述情况下仅创建单页 pdf。如果你只是打电话
然后在 R 绘图窗口中,我可以查看第二个绘图。由于第一个绘图被覆盖,后退箭头按钮被禁用。
r - 用 ggplot2/gtable 匹配两个图的宽度
我正在尝试匹配垂直排列的两个图的绘图区域的宽度(两个图上的数据范围相同)。我尝试使用 gtable 将它们放在一起,然后操纵边距进行调整。看起来,由于底部图没有轴刻度或标签,设置相同的边距会使图稍微错位。我不清楚绘图区域左侧区域的总宽度是如何计算的。似乎文本标签的宽度以某种方式添加到其中,我无法计算出它的宽度。(我可以通过实验来匹配宽度,但我需要生成许多这样的图,我希望解决方案可以处理任意数据。)我尝试了 ,plot.margin
的panel.margin
各种margin
组合axis.text.y
和(已弃用)axis.ticks.margin.y
但无济于事。这是一个最小的工作示例:
我在网上找到了这个解决方案:https ://github.com/hadley/ggplot2/wiki/Align-two-plots-on-a-page 。它适用于简单的示例,但我的实际情节变得乱码。我对 ggplot2 内部结构的了解不足,无法解决问题所在。此解决方案的另一个限制是,在示例中,两个图的高度相同,我希望底部图的高度约为顶部图的 1/10。
r - 安排多个ggplots,但避免由于轴标签而挤压
我一直在使用 cowplot::plot_grid 来排列多个 ggplot 图形,总的来说效果很好。但是,我现在遇到了一个问题,我想在底部图上包含 x 轴标签,但它最终会挤压所有图(使用 align =“vh”)或最低图(使用 align =“ v") 列中。
有什么方法可以提取 x 轴标签 grob,并将其添加为 plot_grid 中的另一个图(可能类似于https://github.com/wilkelab/cowplot/blob/master/vignettes/shared_legends.Rmd for legends )? 还是另一种方法?
感谢您的任何想法!
r - ggplot+gtable 对象在调用时第一次给出空白图,但后来绘制成功
我写了一个名为gg()
. 它有 2 个 ggplots 相互叠加,因此我有 2 个 y 轴——一个在右边,另一个在左边。类似这已从如何管理 gtable() 的 t、b、l、r 坐标以正确绘制辅助 y 轴的标签和刻度线中共享
打印的最终对象是类的,gtable, grob
因为我使用gtable
,grid
包来完成此操作。
现在来解决问题:
我将此函数加载到一个包中,并在命名空间文件中专门导入了每个包中的所有函数,例如gtable
.etcgrid
和整个包ggplot2
。现在,在使用附加此包后,library()
我调用该函数gg()
。它会在 RStudio 中创建一个空白图,甚至在我第一次调用它的情况pdf()
下在 pdf 中创建。dev.off()
但如果我再次调用它,就会生成图。
当我独立调用相同的函数时,即不是通过加载包而是使用source()
单独加载函数文件然后调用gg()
,它甚至是第一次绘制。
我需要有关所有可能的原因/原因的帮助?
一世)。有没有人对对象有类似的问题gtable
?
您认为错误/错误的不同可能性是什么。我同意需要共享代码以便更好地理解。我将很快添加该函数的一个更简单的版本以及所需的任何其他细节。
编辑 1 :- 添加一个简单版本的 gg()
我将在代码的倒数第二行解释“newpage”参数。这是用户传递的一个参数,告诉我想在同一个 pdf 中创建另一个绘图页面,该页面使用 pdf() 打开,并将在最后一个绘图后使用 dev.off() 关闭。在最后一个情节中,用户将通过 newpage = FALSE
r - 有条件地格式化R中表格的着色
有没有办法在使用导出 PDFtableGrob
时有条件地格式化单元格/行?gridExtra
基于数据框中的条件数值,我希望为我的 PDF 输出更改行颜色背景/填充格式。
样本数据:
现在我有一个简单的主题来格式化输出:
这是我的快速 PDF 输出代码:
a
列中和b
样本数据中的数值实际上是成功和不成功的事件。我最终会很快找到成功百分比并将其添加到我的表中作为输出。
我希望实现的是格式化我的 PDF 中表格的整行,以便任何大于或等于 50% 的值df1
都将被格式化为这种颜色:#C4122E
如果低于 50%,则格式化为#1B458F
r - 如何在 gWidgets (R) 中自定义 gtable 行的背景颜色
假设我有一个gtable
这样的gwindow
:
我希望能够任意设置各个行的背景颜色,例如基于该行的列的值(例如,所有元音变为红色的行)。
这可能吗?我对 Gtk 不太了解,但我可以了解是否有人可以为我指明正确的方向,例如,我如何访问行对象以便对其应用 Gtk 函数以更改其颜色。
谢谢你的帮助!
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 的垂直位置。在上面的代码中,t
和l
参数gtable_add_grob
设置为 3 或 4 的值,因为这些是我想用跨越条覆盖的刻面条行。
现在查看cells
2.2.0 版图中的列:请注意,前两个数字始终为 6。还请注意,刻面条仅由 8 个 grobs 组成,而不是 2.1.0 版中的 24 个。在 2.2.0 版本中,似乎每个包含三个方面标签的堆栈现在都是一个单独的 grob,而不是三个单独的 grob。因此,即使我将t
andb
参数更改gtable_add_grob
为 6,所有三个方面都被覆盖。这是一个例子:
所以,在冗长的介绍之后,这是我的问题:如何使用 ggplot2 版本 2.2.0 创建看起来像我使用gtable_add_grob
ggplot2 版本 2.1.0 创建的跨平面条?我希望有一个简单的调整,但如果它需要大手术,那也没关系。
ggplot 2.1.0
ggplot2 2.2.0
r - R:用于聚类树状图的 ggplot 高度调整
这个想法是结合 R 包ClustOfVar
并ggdendro
给出变量聚类的可视化总结。
当数据中的列数很少时,除了有没有覆盖的区域(如下图圈出)之外,结果都很好。使用mtcars
例如:
当有大量列时,会出现另一个问题。即,彩砖部分的高度与树状图的高度不匹配。
如果我们将 R 升级到 3.3.1 版, @Sandy Muspratt 实际上已经为此提供了一个很好的解决方案。R: ggplot 微调聚类总结
但由于我无法更改部署在企业服务器中的 R 版本,我想知道是否有任何其他解决方法可以使这两个部分保持一致。