如何从 ggplot 中删除二分之一的图例?

How to remove 1 out 2 of legends from ggplot?

我想创建一个累积频率图。这是一些示例代码:

library(ggplot2)

year <- c(2010, 2011, 2012, 2010, 2011, 2012)
type <- c("A", "A", "A", "B", "B", "B")
freq <- c(10, 20, 30, 15, 15, 35)

df <- data.frame(year, type, freq)

ggplot(df, aes(x = year, y = freq, fill = type)) +
  geom_bar(stat = "sum")

ggplot2 创建了 2 个图例:上面的一个 "type A and B"(彩色),另一个 "n 1"(灰色)。

我可以使用 + guides(fill=FALSE) 删除(上部)A 型和 B 型图例,但我无法删除下部灰色 n 1 图例.

第二个问题:是否可以让变量始终以相同的顺序绘制? ggplot2 显然是从数字较小的底部开始的。

您可以使用 stat="identity" 而不是 stat="sum":

ggplot(df, aes(x = year, y = freq, fill = type)) + geom_bar(stat = "identity")

这会删除不必要的灰色 "n 1" 图例,并在堆叠条形图中将类型 A 始终置于类型 B 下方。