【发布时间】:2020-04-21 18:58:49
【问题描述】:
我想用ggplot(mpg, aes(x=year,y=hwy, fill=manufacturer)) + geom_area() 绘制面积图,但我明白了:
我是 R 世界的新手,谁能解释为什么它没有填满两行之间的区域?谢谢!
【问题讨论】:
-
也许你想改用
geom_ribbon? -
用什么信息填写行间?
我想用ggplot(mpg, aes(x=year,y=hwy, fill=manufacturer)) + geom_area() 绘制面积图,但我明白了:
我是 R 世界的新手,谁能解释为什么它没有填满两行之间的区域?谢谢!
【问题讨论】:
geom_ribbon?
首先,您的代码没有问题。它按预期工作,并且您执行所需的语法是正确的。
那你为什么不正确绘制区域几何图形呢?简单的答案是,您没有足够的分数在所有美学(制造商)的 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))
【讨论】: