我们有这段代码来创建条形图
x <- 1:10
z1 <- c("m", "m", "m", "m", "m", "m", "m", "n", "n", "n")
z2 <- c("m", "m", "m", "m", "p", "p", "p", "n", "n", "n")
z3 <- c("m", "m", "m", "m", "p", "n", "n", "n", "n", "n")
df <- data.frame(x, z1, z2, z3)
colors <- c("m" = "#f8766d", "n" = "#00BA38", "p" = "#619CFF")
df_long <- pivot_longer(df, cols = c("z1", "z2", "z3"), names_to = "variable", values_to = "value")
ggplot(df_long, aes(x = variable, fill = value)) +
geom_bar() +
scale_fill_manual(values = colors) +
xlab("") + ylab("Count")
虽然 y 轴上的值在 0 到 10 之间,但我想知道,是否可以更改它们,使它们的范围从 0 到 1,步长为 0.25?
position = "fill"
或 position = position_fill()
会将每个组的数据重新调整为 0 到 1 的范围。scale_y_continuous
可以接收您选择的特定中断。
ggplot(df_long, aes(x = variable, fill = value)) +
geom_bar(position = "fill") +
scale_fill_manual(values = colors) +
scale_y_continuous(breaks = seq(0,1, 0.25)) +
# scale_y_continuous(breaks = scales::breaks_width(0.25)) + # alternative
xlab("") + ylab("Count")