在 R 中,使用 ggplot2
包可以创建带有两个 y 轴的箱形图。虽然 ggplot2
本身不直接支持双 y 轴,但可以通过一些技巧来实现。以下是一个示例,展示如何创建一个带有两个 y 轴的箱形图。
首先,确保您已经安装并加载了 ggplot2
和 dplyr
包。如果没有安装,可以使用以下命令进行安装:
install.packages("ggplot2")
install.packages("dplyr")
然后,您可以使用以下代码创建带有两个 y 轴的箱形图:
# 加载必要的库
library(ggplot2)
library(dplyr)
# 创建示例数据
set.seed(123)
data <- data.frame(
group = rep(c("A", "B"), each = 100),
value1 = c(rnorm(100, mean = 10, sd = 2), rnorm(100, mean = 20, sd = 2)),
value2 = c(rnorm(100, mean = 100, sd = 10), rnorm(100, mean = 200, sd = 10))
)
# 创建基本的箱形图
p <- ggplot(data, aes(x = group)) +
geom_boxplot(aes(y = value1), fill = "lightblue", alpha = 0.5) +
geom_boxplot(aes(y = value2 / 10), fill = "lightgreen", alpha = 0.5) + # 缩放第二个 y 轴
scale_y_continuous(
name = "Value 1",
sec.axis = sec_axis(~ . * 10, name = "Value 2") # 创建第二个 y 轴
) +
labs(x = "Group") +
theme_minimal()
# 打印图形
print(p)
data.frame
,每组有 100 个随机生成的值。value1
和 value2
是我们要绘制的两个变量。ggplot()
函数创建基本的箱形图。geom_boxplot()
用于绘制箱形图。value2
除以 10 进行缩放,以便它与 value1
的范围相匹配。scale_y_continuous()
函数添加第二个 y 轴。sec_axis()
用于定义第二个 y 轴的转换关系。labs()
和 theme_minimal()
来设置图形的标签和主题。 领取专属 10元无门槛券
手把手带您无忧上云