r - 如何在ggplot中制作更好的作物图
问题描述
作物图如下所示:
上图显示了涵盖每种作物不同季节的日历年和条形图。
我一直在尝试通过重新创建以下情节来为体育制作“作物情节”:
这是我的尝试:
library(tidyverse)
library(scales)
cal <- tribble(
~sport, ~reg, ~year_end, ~year_begin, ~reg_end, ~pst_end,
"nfl", "2017-09-07", "2017-12-31", "2017-01-01" ,"2017-01-01", "2017-02-05",
"nba", "2017-10-18", "2017-12-31", "2017-01-01" ,"2017-04-13", "2017-06-19",
"mlb", "2017-04-02", "2017-10-04", "2017-10-04" ,"2017-10-04", "2017-11-02",
# don't want to designate a pst season for ncaa_fb.
"ncaa_fb","2017-08-26", "2017-12-31", "2017-01-01" ,"2017-01-10", "2017-01-10",
)
ggplot(cal, aes(x=sport)) +
geom_linerange(aes(ymin=reg, ymax=year_end), color="#324D5C", size=5) +
geom_linerange(aes(ymin=year_begin, ymax=reg_end), color="#324D5C", size=5) +
geom_linerange(aes(ymin=reg_end, ymax=pst_end), color="#ED3752", size=5) +
coord_flip() +
theme_bw()
由reprex 包(v0.2.0)于 2018 年 8 月 21 日创建。
我有两个问题/问题:
有没有更好的方法来处理一年中“包裹”的季节?目前我必须指定一个年终日期和一个年开始日期来给出季节包装的外观。
如何获得一个轴的两个标签?它们有一个日期轴,但有两个标签(月份和季度)。看起来我只能指定一个标签。
有没有更好的方法来制作这种情节?现在这个过程感觉非常手动。我想知道是否有人用另一种方法取得了成功。
额外的:
类似的线程在这里。
编辑
这个原始数据很大,所以我不会dput
在这里,但这是前几行。希望这可以对数据的形式有所了解。
date sport event
1 2017-12-31 nfl_reg 1
2 2017-12-30 nfl_reg 0
3 2017-12-29 nfl_reg 0
4 2017-12-28 nfl_reg 0
5 2017-12-27 nfl_reg 0
6 2017-12-26 nfl_reg 0
解决方案
推荐阅读
- ios - Gluon:SettingsService 在 iOS 上崩溃
- c# - 重命名jqGrid中的列,格式为MMYYYY
- c# - 使用 if 语句更改面板颜色
- angular - 将字符串放入主题数组中
- azure-devops - 是否可以用纯 html 编写 VSTS 仪表板
- c++ - 执行 nodejs 脚本作为子进程(不是来自其他脚本)
- java - 如何在mac中降级java版本
- vue.js - v-select (vuetify) 不能显示选中的元素
- rdf - jena 的 fuseki 不能与 tdb2.tdbloader 压缩吗?
- java - UnsatisfiedLinkError:未找到本机库“wcepeer”(Mysaifu)