我有以下数据:
返回结果如下:
该函数返回以下结果:
图例显示“factor_var”按照之前看到的级别排序,但是区域并没有按照相同顺序堆叠。我怎样才能产生一个输出,使红色在底部,灰色次之,然后蓝色叠在顶部,就像图例中展示的一样?
(注:这是我需要的顺序(factor_var为有序变量),不仅仅是出于美观原因而将堆栈与图例顺序匹配。)
编辑:所需结果如下所示。
解决方案!!
重新排列数据框是创建所需结果的必要条件:
非常感谢您的帮助。
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"))
返回结果如下:
该函数返回以下结果:
![enter image description here](https://istack.dev59.com/0EXK8.webp)
(注:这是我需要的顺序(factor_var为有序变量),不仅仅是出于美观原因而将堆栈与图例顺序匹配。)
编辑:所需结果如下所示。
![enter image description here](https://istack.dev59.com/IQrvi.webp)
重新排列数据框是创建所需结果的必要条件:
newdata <- df[order(df$cont_var, df$factor_var),]
非常感谢您的帮助。
levels(dat$factor_var)
,我想要的堆叠顺序已经排好了,但是第五个级别仍然被绘制在底部! - user2568648