首页 > 解决方案 > 动态排序ggplot构面

问题描述

从左到右动态排序构面的推荐方法是:

(1) 最近价格从最高到最低(因此,b>a>c 方面从左到右)和

(2) 从最高到最低的平均价格 (c>b>a)?

library(lubridate)
library(ggplot2)

start_date <- ymd("2019-04-01")
end_date <- ymd("2019-04-06")

date <- rep(seq(start_date, end_date, by = "days"),3)
price <- c(1,2,3,4,5,6,2,3,4,5,6,7,8,7,6,5,4,3)
class <- c(rep("a",6), rep("b",6), rep("c",6) )
df <- data.frame(date, price, class)

ggplot(df, aes(date, price)) + facet_wrap(~class) + geom_line()

在此处输入图像描述

标签: rggplot2

解决方案


您是在问如何让各个方面按该顺序显示?将 faceting 变量作为一个因素,并按照您想要的顺序设置级别。在您的示例中:

 df$class <- factor(df$class, levels = c("b", "a", "c"))
 ggplot(df, aes(date, price)) + facet_wrap(~class) + geom_line()

推荐阅读