我有一个像这样的数据框(很长的代码很抱歉)
set.seed(23)
date_list = seq(1:30)
testframe1 = data.frame(Date = date_list)
testframe1$ABC = rnorm(30)
testframe2 = data.frame(Date = date_list)
testframe2$DEF = rnorm(30)
testframe3 = data.frame(Date = date_list)
testframe3$GHI = rnorm(30)
testframe4 = data.frame(Date = date_list)
testframe4$JKL = rnorm(30)
testlist = list(testframe1, testframe2, testframe3, testframe4)
names(testlist) = c("ABC", "DEF", "GHI", "JKL")
library(tidyverse)
testlist = testlist %>% reduce(left_join, by = "Date")
library(reshape2)
testlist <- melt(testlist,id.vars = "Date")
我想创建一个barplot,然后尝试了一下,这给了我以下图:
ggplot(testlist, aes(fill = variable, y = value, x = Date)) +
geom_bar(stat="identity")
但这并不是我真正需要的。我不希望酒吧加起来,我希望它们覆盖。这样,具有最高值的变量将被第二高的值覆盖,依此类推,直到达到最小值为止。
有一种简单的方法可以解决此问题吗?我只为堆积的板凳找到帮助,但这不是我所需要的。