Geom_area 绘图未填充线条之间的区域

Geom_area plot doesn't fill the area between the lines

我想用 ggplot(mpg, aes(x=year,y=hwy, fill=manufacturer)) + geom_area() 绘制面积图,但我得到了这个:

我真的是 R 世界的新手,谁能解释为什么它不填充行之间的区域?谢谢!

首先,您的代码没有任何问题。它按预期工作,您的语法是正确的,可以完成您想要做的事情。

那你为什么不正确绘制区域几何图形呢?简单的答案是您没有足够的点数来在所有美学(制造商)的 x 值之间划出一条正确的线。试试 geom_point 情节,你就会明白我的意思:

ggplot(mpg, aes(x=year,y=hwy)) + geom_point(aes(color=manufacturer))

您需要一个不同的数据集。这是一个虚拟的,它只是两条具有不同斜率的线。它按预期工作,因为每个美学都有跨越 x 标签的 y 值:

# dummy dataset
df <- data.frame(
    x=rep(1:10,2),
    y=c(seq(1,10,length.out=10), seq(1,5,length.out=10)),
    z=c(rep('A',10), rep('B', 10))
)

# plot
ggplot(df, aes(x,y)) + geom_area(aes(fill=z))