- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是关于@ClausWilke ( see post ) 提供的解决方案之一的后续问题,用于在主面板和边际图之间插入间隙。如何决定 (scale_x_continuous) 限制?另外,如果我们使用“NA”作为上限会怎样?
# Example with limits set to: (-2,4.5)
require(ggplot2)
require(cowplot)
pmain <- ggplot(data = mpg, aes(x = cty, y = hwy)) +
geom_point() +
xlab("City driving (miles/gallon)") +
ylab("Highway driving (miles/gallon)") +
theme_grey()
xbox2 <- axis_canvas(pmain, axis = "x", coord_flip = TRUE) +
geom_boxplot(data = mpg, aes(y = cty, x = 1)) +
scale_x_continuous(limits = c(-2, 4.5)) + coord_flip()
ybox2 <- axis_canvas(pmain, axis = "y") +
geom_boxplot(data = mpg, aes(y = hwy, x = 1)) +
scale_x_continuous(limits = c(-2, 4.5))
p1 <- insert_xaxis_grob(pmain, xbox2, grid::unit(0.8, "in"), position = "top")
p2 <- insert_yaxis_grob(p1, ybox2, grid::unit(0.8, "in"), position = "right")
ggdraw(p2)
最佳答案
有了连续的 x 轴刻度,您可以使用 expand_limits
在主图和边缘图之间添加一些空白空间。
例如,您的 ybox2
是一个具有连续 x 轴刻度的单箱线图。默认情况下,该图的 x 范围大约为 0.6 到 1.4(您可以通过运行 ggplot(mpg, aes(y=hwy, x=1)) + geom_boxplot()
来查看)。以下代码将 x 轴下限设置为 0.2,这意味着大约 0.4/(0.8+0.4) = 33% 的 x 轴范围将是主图和边际图之间的边距。我们为 xbox2
做同样的事情。
ybox2 <- axis_canvas(pmain, axis = "y") +
geom_boxplot(data = mpg, aes(y = hwy, x = 1)) +
expand_limits(x = 0.2)
xbox2 <- axis_canvas(pmain, axis = "x", coord_flip = TRUE) +
geom_boxplot(data = mpg, aes(y = cty, x = 1)) +
coord_flip() +
expand_limits(x = 0.2)
p1 <- insert_xaxis_grob(pmain, xbox2, grid::unit(0.4, "in"), position = "top")
p2 <- insert_yaxis_grob(p1, ybox2, grid::unit(0.4, "in"), position = "right")
ggdraw(p2)
关于r - cowplot:如何通过修改轴限制来自定义主面板和边缘图之间的间隙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47546013/
这是关于@ClausWilke ( see post ) 提供的解决方案之一的后续问题,用于在主面板和边际图之间插入间隙。如何决定 (scale_x_continuous) 限制?另外,如果我们使用“
在当前图中,p2 现在居中。我希望 p2 与左侧的 p1 对齐。我尝试了 plot_grid 中的一些参数,但图像根本没有改变。 library(ggplot2) library(flextable)
我正在尝试为使用 cowplot::plot_grid() 组合 ggplot2 绘图的函数编写单元测试。例如, # setup set.seed(123) library(ggplot2) # cr
假设我有一个数据集 x和 y根据两个变量分组的值:grp是 a , b , 或 c , 而 subgrp是 E , F , 或 G . a有 y [0, 1] 中的值 b有 y [10, 11] 中的
我正在尝试使用cowplot包的draw_image()函数。我已经设法在图表中获取图像作为示例。 我无法弄清楚 xy 位置是如何工作的,我必须不断输入随机数,直到看到图像。 require(ggpl
我正在尝试使用cowplot包的draw_image()函数。我已经设法在图表中获取图像作为示例。 我无法弄清楚 xy 位置是如何工作的,我必须不断输入随机数,直到看到图像。 require(ggpl
我正在尝试使用 Cowplot 制作一些“紧密堆叠”的图。我可以使用以下 MWE 获得我想要的效果: library(ggplot2) library(cowplot) disp_plot <- gg
我正在尝试制作一个相关热图,其中使用 cowplot::switch_axis_position 将 x 轴移动到顶部.我有不同长度的轴标签,我希望标签左对齐(或者更确切地说是底部对齐,因为它们旋转了
我想以某种方式表明应该将多面板图中的某些行放在一起进行比较。例如,我想制作这个情节: 看起来像这个图(用 PowerPoint 制作的面板周围有框): 这是我为使用第一个图而制作的代码。我使用了 gg
我有一个多图图,由 2x2 配置的 4 个图组成。我使用“cowplot”包和 plot_grid 函数使用下面的代码排列图 plot_grid(p1, p2, p3, p4, align='vh',
我正在尝试在与 plot_grid 对齐的两个图周围绘制边框来自牛图包。请看下面的例子(修改自 "Changing the axis positions" vignette ): require(gt
我有一个关于 Cowplot 中的绘图对齐的问题。 我想在由 3 列组成的面板中对齐图 (ggplot)。第一列有 2 个图(垂直对齐),第二列有 1 个图,第三列也有两个图(垂直对齐)。 示例: #
我已经使用 purrr 创建了 ggplot2 图形的列表列,现在我想使用 cowplot::plot_grid() 来组合他们成一个单一的情节。我怎样才能做到这一点?有一种蛮力方法可以做到这一点,但
我有一个关于 Cowplot 中的绘图对齐的问题。 我想在由 3 列组成的面板中对齐图 (ggplot)。第一列有 2 个图(垂直对齐),第二列有 1 个图,第三列也有两个图(垂直对齐)。 示例: #
我已经使用 purrr 创建了 ggplot2 图形的列表列,现在我想使用 cowplot::plot_grid() 来组合他们成一个单一的情节。我怎样才能做到这一点?有一种蛮力方法可以做到这一点,但
我有一个来自 1:10 的 ggplots 列表,名为 plot_1 , plot_2 ....plot_10 . 我想使用 cowplot 将所有图一起显示。 我如何使用 plot.grid()调用
我正在尝试使用 cowplot::plot_grid() 组合两个 ggplot 对象并垂直对齐它们。这通常使用 align = "v" 非常简单。 dat1 <- data.frame(x = re
我想用 R 绘制一个看起来像用 Mac 的 Numbers 制作的示例的图。我正在为情节和图例框之间的空间而苦苦挣扎。这是我想要实现的示例: 在一些用户的帮助下(请参阅帖子末尾以供引用)我已经非常接近
我被问到 this question on Twitter并认为把它放在这里可能会很好。 使用 plot_grid() 制作带标签的并排图时,对于单字母标签,事情按预期工作: library(cowp
使用cowplot中的draw_image()函数读取矢量化pdf有时会导致图像严重模糊: library(ggplot2) library(cowplot) library(magick) # ma
我是一名优秀的程序员,十分优秀!