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))
我想用 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))