📅  最后修改于: 2023-12-03 14:52:17.680000             🧑  作者: Mango
在 ggplot2 中绘制堆积条,需要使用 geom_bar()
函数,并通过 position = "fill"
参数来使条形图百分比化。下面是一个简单的示例:
library(ggplot2)
# 构造数据集
df <- data.frame(
x = c("A", "B", "C", "D"),
y = c(20, 30, 40, 10),
z = c(30, 10, 20, 40)
)
# 绘制条形图
ggplot(df, aes(x, fill = factor(y))) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format())
上面的代码将绘制出一个堆积条形图,其中 x 轴为 A、B、C、D 四个类别,y 轴表示每个类别所占的百分比。在代码中,我们通过 fill
参数将类别 y
转换为堆积条的填充色,然后使用 position = "fill"
参数将条形图变成百分比格式。最后,我们使用 scales::percent_format()
函数使 y 轴的刻度标签以百分比形式显示。
如果要对每个类别进行分组,可以在 aes()
函数中使用多个变量,如下所示:
ggplot(df, aes(x, fill = factor(y), group = z)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format())
上面的代码将按照 y
和 z
两个变量进行分组,并绘制出相应的堆积条形图。
绘制堆积条形图需要注意以下几点:
fill
参数时,变量必须是分类变量(factor
),否则填充颜色将无法显示。position = "fill"
参数时,y 轴的范围将限制在 0 到 1 之间,因此需要使用 scale_y_continuous()
函数将刻度标签转换为百分比形式。group
参数时,需要注意设置正确的分组变量,否则堆积条形图将无法正确分组。参考文献: