要保持ggplot堆叠条形图中条的宽度恒定,即使有不同数量的条,可以使用geom_bar()函数的参数width来设置条的宽度。首先,需要计算每个堆叠条中的总数,然后将其用作width参数的值。以下是一个带有代码示例的解决方法:
library(ggplot2)
# 创建一个示例数据框
data <- data.frame(category = c("A", "B", "C"), value = c(10, 20, 30))
# 计算每个堆叠条的总数
total <- sum(data$value)
# 计算每个堆叠条的宽度
width <- total / length(data$category)
# 创建堆叠条形图
ggplot(data, aes(fill = category, y = value, x = 1)) +
geom_bar(stat = "identity", width = width) +
scale_x_continuous(limits = c(0, 2), breaks = NULL) +
theme_void()
在上面的代码中,我们首先计算了堆叠条的总数,然后将其除以条的数量得到宽度。接下来,我们使用geom_bar()函数创建堆叠条形图,并将宽度设置为计算得到的值。最后,使用scale_x_continuous()函数设置x轴的范围为0到2,以及使用theme_void()函数将图形的背景设置为透明。
运行以上代码,你将获得一个保持堆叠条的宽度恒定的条形图,即使有不同数量的条。
下一篇:保持ggplot中因子顺序的方法