📅  最后修改于: 2023-12-03 14:56:52.123000             🧑  作者: Mango
在数据分析和可视化中,双 Y 轴图可以同时展示两个不同意义的变量。在 R 中,使用 ggplot2 包可以轻松地绘制出双 Y 轴图,并调整两个 Y 轴的比例,以确保图形的可读性和准确性。
首先,需要安装并加载 ggplot2 包:
install.packages("ggplot2")
library(ggplot2)
接着从数据集中选择需要展示的变量。在这个例子中,我们使用 R 内置的 mpg 数据集,其中包含了许多汽车的相关信息。
data(mpg)
然后,我们可以使用 ggplot 函数创建一个空白的绘图对象,设置 x 轴和第一个 y 轴的标题,添加第一个数据集并绘制第一个基础层。
ggplot(data = mpg, aes(x = displ, y = cty)) +
labs(x = "Displacement", y = "City MPG") +
geom_point()
这将生成一张简单的散点图,其中 x 轴是排量,y 轴是城市每加仑的英里数。
接下来,我们需要添加第二个 y 轴和第二个数据集。为了使第二个 y 轴可以与第一个 y 轴区分开来,需要创建一个新的 y 轴标度,将其命名为第二个变量的名称,例如 “Highway MPG”(公路每加仑英里数)。此外,需要将第二个数据集添加到绘图中,并添加一个新的基础层。
ggplot(data = mpg, aes(x = displ, y = cty)) +
labs(x = "Displacement", y = "City MPG") +
geom_point(aes(color = "City MPG")) +
scale_y_continuous(name = "City MPG", sec.axis = sec_axis(~ ., name = "Highway MPG")) +
geom_point(aes(y = hwy, color = "Highway MPG"))
在这个例子中,我们使用颜色来区分两个数据集。其中,城市每加仑的英里数用蓝色散点表示,公路每加仑的英里数用红色散点表示。
在双 Y 轴图中,两个变量的比例往往不同。为了使图形更加准确和易读,需要调整两个 Y 轴的比例。
在 ggplot2 中,可以使用 sec_axis
函数来设置第二个 Y 轴的比例。其中,第一个参数 ~ .
表示将第二个数据集的值与原始刻度标签相同,第二个参数 name
表示第二个 Y 轴的名称。
ggplot(data = mpg, aes(x = displ, y = cty)) +
labs(x = "Displacement", y = "City MPG") +
geom_point(aes(color = "City MPG")) +
scale_y_continuous(name = "City MPG", sec.axis = sec_axis(~ . * 1.5, name = "Highway MPG")) +
geom_point(aes(y = hwy, color = "Highway MPG"))
在这个例子中,我们将公路每加仑的英里数的比例增加了 1.5 倍。这样做可以确保两个 Y 轴之间的比例更加准确,图形更加易读。
使用 ggplot2 包可以轻松地绘制出双 Y 轴图,并调整两个 Y 轴的比例,以确保图形的可读性和准确性。在创建图形时,需要注意数据集的选择和变量的定义,并使用 sec_axis
函数调整两个 Y 轴的比例。