使用ggplot2中的geom_area()在雷达图中的颜色区域

时间:2018-05-15 17:30:41

标签: r ggplot2

在阅读之前,我建议您下载并查看this question posted in this forum中的原始代码。

我运行这个ggplot代码:

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles)) +
  coord_polar() +
  geom_area(aes(color=X3, fill=X3), alpha=0.2) +

得到了这个情节:

enter image description here

正如您可能想象的那样,代码出了问题。蓝色组似乎正确着色。我想为所有组着色,以黑色斜环为参考,代表0。

我该如何实现?

1 个答案:

答案 0 :(得分:4)

geom_area()的默认position参数为stack。这会将每个区域叠加在其他区域上,在这种情况下会产生奇怪的结果。

只需将位置更改为identity

library(ggplot2)

## This was not given, I supposed it's in this form
orden_deciles <- paste0('DC', 1:10)

ggplot(data=data,  aes(x=X2, y=Count, group=X3, colour=X3)) + 
  geom_point(size=5) + 
  geom_line() + 
  xlab("Decils") + 
  ylab("% difference in nº Pk") + 
  ylim(-50,25) + ggtitle("CL")  + 
  geom_hline(aes(yintercept=0), lwd=1, lty=2) + 
  scale_x_discrete(limits=c(orden_deciles)) +
  geom_area(aes(fill=X3), alpha=0.2, position = position_identity()) +
  coord_polar()
#> Warning: Removed 5 rows containing missing values (geom_point).
#> Warning: Removed 2 rows containing missing values (geom_path).

reprex package(v0.2.0)创建于2018-05-15。