📜  在 R 中用两个 Y 轴绘制图(1)

📅  最后修改于: 2023-12-03 14:51:07.676000             🧑  作者: Mango

在 R 中用两个 Y 轴绘制图

在某些情况下,我们需要绘制两个数据集在同一张图上,但是它们具有不同的尺度。这时候可以使用两个 Y 轴绘制图,让不同尺度的数据都能清晰地展示。

准备数据

首先我们需要准备两个数据集,它们具有不同的尺度。在这里我们使用 diamondsmpg 数据集作为例子。

library(ggplot2)

diamonds_plot <- ggplot(data = diamonds, aes(x = carat, y = price)) + 
  geom_point()

mpg_plot <- ggplot(data = mpg, aes(x = displ, y = hwy)) +
  geom_point()

我们生成了两个散点图 diamonds_plotmpg_plot

绘制两个 Y 轴图

接下来我们需要将两个散点图合并成一个图,使用两个 Y 轴来呈现。

library(gridExtra)

p <- grid.arrange(
  diamonds_plot + scale_y_continuous(name = "Price",
                                      sec.axis = sec_axis(~ . / 45)),
  mpg_plot + scale_y_continuous(name = "Highway mpg", 
                                  sec.axis = sec_axis(~ . * 45))
  , ncol = 2)

print(p)

我们使用 gridExtra 中的 grid.arrange() 函数来将两个散点图并排排列。使用 scale_y_continuous() 函数来为每个图设置 Y 轴标签,并使用 sec_axis() 来将数据转换到不同的尺度。

运行上述代码,我们就可以得到一张带有两个 Y 轴的图。

总结

在本文中,我们介绍了如何在 R 中绘制两个 Y 轴的图,使得不同尺度的数据都能清晰地展示。在绘制过程中,我们使用了 ggplot2gridExtrascale_y_continuous() 函数。通过这种方式,我们可以更加清晰地展现两个具有不同尺度的数据集。