📅  最后修改于: 2023-12-03 14:51:07.676000             🧑  作者: Mango
在某些情况下,我们需要绘制两个数据集在同一张图上,但是它们具有不同的尺度。这时候可以使用两个 Y 轴绘制图,让不同尺度的数据都能清晰地展示。
首先我们需要准备两个数据集,它们具有不同的尺度。在这里我们使用 diamonds
和 mpg
数据集作为例子。
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_plot
和 mpg_plot
。
接下来我们需要将两个散点图合并成一个图,使用两个 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 轴的图,使得不同尺度的数据都能清晰地展示。在绘制过程中,我们使用了 ggplot2
、gridExtra
和 scale_y_continuous()
函数。通过这种方式,我们可以更加清晰地展现两个具有不同尺度的数据集。