你能告訴我如何根據2013年的銷售額從上到下排序堆疊圖表嗎?例如,2013 年的銷售額是 D 組中最高的,所以我希望在這個類別中始終保持領先,等等。
df <- data.frame (Year = c("2010", "2010", "2010", "2010", "2011","2011","2011","2011","2012","2012","2012","2012","2013","2013","2013","2013"),
Sale = c(100,200,50,500,400,200,400,145,100,456,345,321,100,200,250,400),
Group = c("A", "B", "C", "D","A", "B", "C", "D","A", "B", "C", "D","A", "B", "C", "D"))
df$Year <- as.integer(df$Year)
ggplot(df, aes(x = Year, y = Sale, fill = Group))
geom_area()

uj5u.com熱心網友回復:
您需要使用fct_reorder()from重新排序forcats因子Group:Sale
df %>%
mutate(Group = fct_reorder(Group, desc(Sale))) %>%
ggplot(aes(x = Year, y = Sale, fill = Group))
geom_area()

為了在特定年份做到這一點,我做了以下事情。
ls <- df %>% filter(Year == 2013) %>% arrange(desc(Sale)) %>% select(Group)
df$Group <- factor(df$Group, levels = ls$Group)
df %>%
ggplot(aes(x = Year, y = Sale, fill = Group))
geom_area()
這是手動重新排序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/468589.html
上一篇:回圈遍歷csv行并放入代碼中
