问题标签 [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.

0 投票
0 回答
1977 浏览

r - 使用ggplot2将y轴切换到右侧

我正在 ggplot2 中创建一个 1 x 2 图形,并希望将其中一个图形的 y 轴放置在图的右侧。我快搞定了,这是一个 MWE,

但是,右侧图的 axis.tick.margin 被搞砸了(见下图)。我宁愿以某种方式自动化它。我已经搜索过旧的 hack,但它们似乎已经在升级到 ggplot2 v2.0.0 时中断了。有什么建议吗?

在此处输入图像描述

0 投票
1 回答
3843 浏览

r - ggplot2 - 在绘图顶部添加辅助 y 轴

对于出版物,我需要在现有绘图中添加第二个 y 轴。我遇到了一种方法来做到这一点(https://rpubs.com/kohske/dual_axis_in_ggplot2)。但是,我不太了解编码。我找不到一种方法来使正确的 y 轴也显示出来,而不仅仅是顶部边框。我的编码中缺少什么?这是我的虚拟数据:

0 投票
1 回答
345 浏览

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

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

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

产生这样的情节:

输出

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

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

0 投票
1 回答
2141 浏览

r - 构面的整体标签

这是一些用于生成具有两组构面的图形的最小代码。

我不知道如何添加整体构面标签,以便名称 Donatello 和 Raphael 位于顶部和右侧轴上。

我在 SO 上看到了一些类似的解决方案,但我无法确定代码的正面或反面。请你建议我的难题的答案?

这里有类似的问题,但如果我有两个以上的方面,它对我来说会失败。标签显示在图表内的某处。有没有办法使它适用于一般情况?

所以我在上面的链接中尝试了 rawr 的解决方案,它最终在多个列的同一个地方结束。这是更新为 rawr 解决方案的代码,但它在意想不到的地方产生了标签(对我来说,因为我不理解解决方案)。

请有人向我指出代码中告诉它一般方面标签应该有多宽的部分?

0 投票
2 回答
2558 浏览

r - 条形图和线图的ggplot2叠加

我从本网站上的某个人那里逐行复制了有关如何用两个 y 轴覆盖两个图的代码。但是,该示例使用了两个线图,但我想要覆盖一个线图和一个条形图。我似乎根本无法获得覆盖,它只是绘制线图。请帮忙。谢谢。

我希望输出看起来与此完全(或非常相似):照片但是,我希望条形图“躲避”

0 投票
4 回答
1656 浏览

r - 重现具有双轴的“经济学人”图表

我试图 从《经济学人》(左边的那个)复制这张图表。该图表在左侧 y 轴上绘制了俄罗斯的亿万富翁数量,在右侧绘制了世界其他地区的亿万富翁数量。

  1. 为俄罗斯亿万富翁创建图表 ( p1)。
  2. 为其他人创建图表 ( p2)。
  3. 使用Kohske的代码p1和组合p2成双 y 轴图表。

数据:(内容billionaire.csv

代码:

为了用我选择的字体和颜色格式化文本“俄罗斯的数字”和“世界其他地区”,我把它们放在ggtitle. 但是在步骤 3 中将图表组合在一起后,标题p2丢失了,所以这就是我得到的全部

在此处输入图像描述

我想要实现的是
1. 在我选择的颜色和字体系列中添加文本“Rest of world”(不是默认的 Helvetica。)
2. 在 x 轴上添加标签 1996。

任何帮助表示赞赏。谢谢!

编辑:添加了数据集和完整代码。
EDIT2:仅供参考,我从这里得到了所有的 Officiana 字体:http
://people.oregonstate.edu/~hanshumw/Specie%20I.D./Signage%20Backup/FONT%20Officina%20full/ EDIT3:好的,我终于怎么样了通过摆弄网格级别的绘图来使其工作

把这个块放在前面ggsave(...),结果如下:

0 投票
1 回答
763 浏览

r - rasterGrobs 在 gtable 单元格中的绝对定位

我一直试图在 gtable 单元格中指定 rasterGrobs 的绝对位置,但没有成功。我希望能够使图像的范围与 y 轴上的值对齐。该脚本将钻芯图像与 ggplot2 刻面中绘制的多传感器数据对齐。例如,一个特定的射线照片核心图像需要其顶部为 192 毫米,底部为 1482 毫米,但我希望比例尺从 0 到 1523 毫米。请参阅包含的链接以获取我正在做的示例,但为简单起见,我仅在此处发布了 MWE。是否可以在 gtable 单元格内为 rasterGrob 指定绝对位置?

预期输出样本

就下面的 MWE 而言,到目前为止,我唯一的解决方案是Rlogo.png使用rasterGrob(). 使用"native"坐标似乎也不是我需要的。同样,我无法理解 in 中调用的位置参数gtable_add_grob()

由上面的代码产生的情节

在提出使用 rasterGrob 将图像添加到 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 投票
1 回答
674 浏览

r - 如何在同一页面上绘制多个 ggplot2 图并在所有图上添加垂直线

类似的问题How to align multiple ggplot2 plots and add shadows over all them

我在上述问题上花了几天时间,但没有成功。

问题

我想在我的情节上添加一条垂直线。怎么做?

数据

可以在这里下载或像下面这样的迷你数据

代码

我得到以下图片:

看起来不错!

在此处输入图像描述

但是,当我发布代码时:

我只得到一条垂直线,顶部图和散点图已被覆盖。

我还尝试使用以下代码模仿克劳斯威尔克的解决方案:

但我只得到一条垂直线。

0 投票
1 回答
3294 浏览

r - 如何管理 gtable() 的 t、b、l、r 坐标以正确绘制辅助 y 轴的标签和刻度线

我正在使用 facet_wrap 并且还能够绘制辅助 y 轴。然而,标签并没有绘制在轴附近,而是绘制得很远。我意识到如果我了解如何操作 grobs 的 gtable (t,b,l,r) 的坐标系,这一切都会得到解决。有人可以解释他们实际描绘的方式和内容 - t:r = c(4,8,4,4) 是什么意思。

带有 ggplot 的辅助 yaxis 有很多链接,但是当 nrow/ncol 大于 1 时,它们会失败。所以请教我网格几何和 grobs 位置管理的基础知识。

编辑:代码

@Sandy 这里是代码及其输出

唯一的问题是在最后一行中,辅助 y 轴标签位于面板内。我试图解决这个问题但无法解决