首页 > 解决方案 > 将一个刻面和一个未刻面的 ggplot2 组合在一起,确保面板的宽度相同

问题描述

我处于一种情况,我想将两个ggplot2地块连续组合在一起。为了论证起见,地块 1 是单个面板,地块 2 被分成两个面板。我想将这些组合成一行三个图,可以使用cowplot/来实现patchwork

关键是我想确保每个面板的宽度相同。使用下面的代码很接近,但使用 rel_widths 仍然意味着 Plot 1 的实际绘图区域很小(我认为由于 rel_widths 计算轴标签等而不是实际绘图区域)。

有没有办法简单地做到这一点?设置 ggplot 的纵横比不起作用。

我这样做的原因是两个面板共享一个轴,但一个拥有自己的轴。ggplot2它本身似乎没有执行此操作的功能。

library(tidyverse)

plt1 = iris %>%
  filter(Species == Species[1]) %>%
  ggplot(aes(x = Sepal.Length, y = Petal.Length)) +
  geom_point() +
  facet_wrap(~"setosa")

plt2 = iris %>%
  filter(Species != Species[1]) %>%
  ggplot(aes(x = Sepal.Length, y = Petal.Length)) +
  geom_point() +
  facet_wrap(~Species)

cowplot::plot_grid(plt1, plt2, rel_widths = c(1,2),
                   align = "hv", axis = "l")

在此处输入图像描述

标签: rggplot2

解决方案


推荐阅读