如何在ggplot中制作更好的作物图

时间:2018-08-21 16:17:05

标签: r ggplot2

作物图看起来像这样:

enter image description here

上面显示了一个日历年和涵盖每种作物不同季节的条形图。

我一直在尝试通过重新创建以下情节来制作运动“作物图”:

enter image description here

这是我的尝试:

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 package(v0.2.0)于2018-08-21创建。

我有两个问题/问题:

  1. 是否有更好的方法来处理全年的“换行”季节?目前,我必须指定结束日期和开始日期以给出季节包装的外观。

  2. 如何获得一个轴的两个标签?它们有一个日期轴,但有两个标签(月和季度)。看来我只能指定一个标签。

  3. 是否有更好的方法来制作此类图?现在,这个过程非常手动。我想知道其他人在其他方法上是否成功。

额外:

类似线程here

编辑

此原始数据很大,因此我不会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

0 个答案:

没有答案