56得票3回答
ggplotGrob的反函数是什么?

我有一个函数,它通过将ggplot对象转换为grob并修改图层来进行操作。我希望该函数返回一个ggplot对象而不是grob。有没有一种简单的方法将grob转换回gg? ggplotGrob 的文档非常稀少。 下面是一个简单的例子: P <- ggplot(iris) + geom...

24得票2回答
如何使用annotation_custom()在图形区域的精确位置放置grobs?

我正在尝试使用ggplot2重现以下[基本R]图表: 我已经成功实现了大部分内容,但目前让我困惑的是将连接右侧边际地毯图和相应标签的线段放置在何处。标签已通过anotation_custom()绘制(如下图所示),并且我使用了@baptiste的技巧关闭裁剪以允许在图形边缘绘制。 尽管...

17得票2回答
寻找解决方案,修复因ggplot 2.2.0导致的gtable_add_grob代码问题

在具有多个分面变量的绘图中,ggplot2重复用于"外部"变量的分面标签,而不是跨越"内部"变量所有级别的单个跨度分面条。我有一些代码,使用gtable包中的gtable_add_grob来覆盖重复的外部分面标签,改为使用单个跨度分面条。 不幸的是,由于分面条grob结构的更改,这段代码在g...

13得票1回答
如何绘制不超出数值的带有圆形末端的线段

我有点惊讶,这从未引起过我的注意(我猜直到今天我才没有用圆形线段画得很多)。 当画一个带有圆形线段结束的线段时,这当然会作为额外的图形元素添加进去,但它通过超出给定的值来为图形表示增加了“价值”。我该如何改变这个呢? 我认为需要重新计算原始值,以便在添加圆形结束时达到正确的值,但这需要在绘...

12得票1回答
将常规的绘图对象强制转换为Grob,以便在grid.arrange中使用。

b <- ggplot(cars,aes(x=speed,y=dist))+geom_line() grid.arrange( b, plot(cars), ncol=1 ) 出现以下错误 Error in gList(list(grobs = list(...

11得票1回答
ggplot2 中 geom_point 的 npc 坐标

我如何在ggplot中获取geom_point的x和y坐标,参考框架是整个绘图图像? 我可以使用以下代码创建一些包含geom_point的ggplot:library(ggplot2) my.plot <- ggplot(data.frame(x = c(0, 0.456, 1), ...

10得票1回答
在arrangeGrob中使用 pheatmap

我尝试使用arrangeGrob()将两个图表放在同一个.jpg文件中。我刚开始学习网格和grobs,我认为我知道问题所在:pheatmap是一个网格对象,包含grob对象,不允许我将其放在arrangeGrob中。这是真的吗? 我是否需要将qplot放入网格中,将pheatmap放入网格中...

10得票2回答
在grid.arrange中去除图形和表格之间的空白

我希望能够在grid.arrange中移除默认插入的图表和表格之间的大间距,如下所示:require(ggplot2) require(gridExtra) list1=data.frame(mtcars[1:3, ]) # Dummy data p1 = ggplot(list1, ae...

10得票1回答
如何利用facet_wrap产生的空白空间?

我有一个分面图,它形成了一个 n x m 的网格。按照设计,最后一个(右下角)单元格始终为空,因此我想利用额外的空间添加另一个 ggplot 对象。我当前的解决方案依赖于低级别的 viewport 方法,这不是非常优雅的,并且需要一些硬编码来确定位置和大小。 相反,我认为可以通过其他方式访问...

9得票3回答
在绘制数据前,是否可能先绘制坐标轴线?

这是对我之前问题的跟进,我当时在寻找一个解决方案,让轴先绘制,然后再是数据。答案适用于那个具体的问题和示例,但它引出了一个更普遍的问题如何改变底层 grobs 的绘图顺序。首先是轴,然后是数据。 很像面板网格 grob 可以上下绘制一样。 面板网格和轴 grobs 显然生成方式不同 - 轴...