r语言堆积条形图双轴不贴x轴
时间: 2024-08-16 21:07:03 浏览: 84
在R语言中,创建堆积条形图并使其双轴不贴着x轴通常涉及到使用`ggplot2`包。这里是一个简单的示例:
```r
library(ggplot2)
# 假设我们有两组数据df1和df2,每组都有x和y值
df1 <- data.frame(x = c(1, 2, 3), y1 = c(50, 40, 60))
df2 <- data.frame(x = c(1, 2, 3), y2 = c(70, 80, 90))
# 将两个数据框堆叠在同一张图上
ggplot() +
geom_bar(data = df1, aes(x = x, y = y1, fill = "Group 1"), stat = "identity") +
geom_bar(data = df2, aes(x = x, y = y2 - y1, fill = "Group 2"), stat = "identity", position = position_dodge()) +
# 创建第二个y轴,设置为right轴,与x轴分离
scale_y_continuous(name = "Second Axis", sec.axis = sec_axis(~ . / max(df2$y2), name = "Percentage of Group 2")) +
labs(title = "Stacked Bar Chart with Dual Y-Axes",
x = "X Axis Label",
fill = "Group") +
theme_bw()
```
在这个例子中,`geom_bar()`函数用于绘制条形图,`position_dodge()`使得两个组的条形不会重叠。`scale_y_continuous(sec_axis=...)`是用来创建第二个y轴的,并通过`sec_axis~ . / max(df2$y2)`计算每个点在总比例中的位置。
阅读全文