是否可以在 `geom_bar` 中缩放轴刻度?

问题描述 投票:0回答:1

我们有这段代码来创建条形图

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?

r ggplot2 geom-bar
1个回答
0
投票

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") 

© www.soinside.com 2019 - 2024. All rights reserved.