r - 动态排序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()
解决方案
您是在问如何让各个方面按该顺序显示?将 faceting 变量作为一个因素,并按照您想要的顺序设置级别。在您的示例中:
df$class <- factor(df$class, levels = c("b", "a", "c"))
ggplot(df, aes(date, price)) + facet_wrap(~class) + geom_line()
推荐阅读
- google-sheets - 如果单元格包含定义的值,则从行中提取数据
- python - discord.py 邀请跟踪器
- google-apps-script - 异常:在对象 SpreadsheetApp.Range 上获取方法或属性 setNumberFormats 时出现意外错误
- python - Dataframe.multiply 方法生成 NaN 值
- php - preg_match_all 仅替换第一次出现 @user php
- python - 收到以下错误:AttributeError:模块“pandas”没有属性“read_csv”
- sql - 如何使用数值在 SQL 中将长格式转换为宽格式
- node.js - 打字稿无法识别 .sequelizerc 文件
- heap-analytics - 有没有办法使用 API 获取堆分析数据?我只在他们的 API 文档中看到 POST API
- arduino - 程序正在执行,但 AT 命令未显示在串行监视器中