【发布时间】:2015-07-15 13:49:51
【问题描述】:
我有以下数据:
df <- as.data.frame(c(rep(1,3),rep(2,3),rep(3,3)))
names(df) <- "cont_var"
df$factor_var <- as.factor(rep(c("fac1","fac2","fac3"),3))
df$prop <- c(10,20,70,20,30,50,25,40,35)
“factor_var”的级别为:
> levels(df$factor_var)
[1] "fac1" "fac2" "fac3"
我使用以下方法制作了堆积面积图:
library(ggplot)
ggplot(df, aes(x=cont_var, y=prop, fill=factor_var)) +
geom_area(colour="black",size=.2, alpha=.8) +
scale_fill_manual(values=c("blue", "grey", "red"))
返回以下结果:
图例显示“factor_var”按照之前看到的级别排序,但这些区域没有按相同的顺序堆叠。我怎样才能产生一个底部有红色然后灰色然后蓝色堆叠在顶部的输出,就像图例中的情况一样?
(注意。这是我需要的顺序(factor_var 是一个有序变量),这不仅仅是出于美学原因将堆叠与图例顺序匹配的情况。)
编辑:所需结果如下所示
解决方案!
重新排序数据框对于创建所需的结果是必要的:
newdata <- df[order(df$cont_var, df$factor_var),]
非常感谢您的帮助。
【问题讨论】: