我想在包含“建议的播种期”和实际播种日期的甘特图上覆盖降雨数据(列)。从数据集中,我可以分别创建两个图表,但不能在一个图表上创建。任何指针都非常感谢。
https://photos.app.goo.gl/RanEbM62nxE1nrD47
## plot Gantt chart with suggested sowing dates and actual sowing dates
sowdate.df$Element <- factor(sowdate.df$Element,levels=c("SOWING DATE","Dart","Spitfire","Suntop","Beckom","Flanker","Lancer","Sunmax","Kittyhawk"))
ggplot(sowdate.df, aes(Date1, Element, Color=Category, group=Item)) +
geom_line(size = 10)
## plot rainfall
ggplot(sowdate.df, aes(Date1, rain)) + geom_col()
## combine Gantt and rainfall
ggplot(sowdate.df) +
geom_col(aes(Date1, rain), size = 1, color = "darkblue", fill = "white") +
geom_line(aes(Date1, Element, Color=Category, group=Item), size = 1.5, color="red", group = 1)
Item Element Category Start-End Date1 rain
1 1 Beckom Variety Start 2018-05-07 NA
2 2 Dart Variety Start 2018-06-01 NA
3 3 Flanker Variety Start 2018-05-01 NA
4 4 Kittyhawk Variety Start 2018-04-01 NA
5 5 Lancer Variety Start 2018-05-01 NA
6 6 SOWING DATE Sowing date Start 2018-06-06 NA
7 7 SOWING DATE Sowing date Start 2018-06-26 NA
8 8 SOWING DATE Sowing date Start 2018-07-03 NA
9 9 SOWING DATE Sowing date Start 2018-07-12 NA
10 10 Spitfire Variety Start 2018-05-21 NA
11 11 Sunmax Variety Start 2018-04-15 NA
12 12 Suntop Variety Start 2018-05-07 NA
13 1 Beckom Variety End 2018-05-31 NA
14 2 Dart Variety End 2018-06-30 NA
15 3 Flanker Variety End 2018-05-21 NA
16 4 Kittyhawk Variety End 2018-05-07 NA
17 5 Lancer Variety End 2018-05-21 NA
18 6 SOWING DATE Sowing date End 2018-06-07 NA
19 7 SOWING DATE Sowing date End 2018-06-27 NA
20 8 SOWING DATE Sowing date End 2018-07-04 NA
21 9 SOWING DATE Sowing date End 2018-07-13 NA
22 10 Spitfire Variety End 2018-06-21 NA
23 11 Sunmax Variety End 2018-05-07 NA
24 12 Suntop Variety End 2018-06-07 NA
25 13 <NA> Rainfall <NA> 2018-04-14 3.0
26 14 <NA> Rainfall <NA> 2018-03-30 7.0
27 15 <NA> Rainfall <NA> 2018-06-10 3.5
28 16 <NA> Rainfall <NA> 2018-06-18 4.0
29 17 <NA> Rainfall <NA> 2018-06-28 13.5
30 18 <NA> Rainfall <NA> 2018-07-23 3.0
31 19 <NA> Rainfall <NA> 2018-08-05 6.0
32 20 <NA> Rainfall <NA> 2018-08-25 23.0
33 21 <NA> Rainfall <NA> 2018-09-10 5.0
尽管仍然缺少期望的输出,但这是一个建议
您使用因子水平作为y值的geom_line
的解决方法很有趣,但是我不确定是否如此。
无论如何-这可能是您问题的核心。您正在混合不同的y度量-它们属于不同的类别。一个图的因子水平,另一图的数字/整数。这是有问题的。我不会努力将它们逼入一个y轴,而是宁愿创建两个图并将它们与其中一个包含patchwork
的组合图组合。像这样
我已重命名了您的列,正在使用GitHub用户@ alisdaire47的软件包读取数据,并更改了一些列以实现绘图。关键是使用正确的类:日期作为日期,数字作为数字。
首先阅读您的数据:
#devtools::install_github('alistaire47/read.so')
sowdate.df <- read.so::read_so('Item Element Category Start_End Date1 rain
1 1 Beckom Variety Start 2018-05-07 NA
2 2 Dart Variety Start 2018-06-01 NA
3 3 Flanker Variety Start 2018-05-01 NA
4 4 Kittyhawk Variety Start 2018-04-01 NA
5 5 Lancer Variety Start 2018-05-01 NA
6 6 SOWING DATE Sowing date Start 2018-06-06 NA
7 7 SOWING DATE Sowing date Start 2018-06-26 NA
8 8 SOWING DATE Sowing date Start 2018-07-03 NA
9 9 SOWING DATE Sowing date Start 2018-07-12 NA
10 10 Spitfire Variety Start 2018-05-21 NA
11 11 Sunmax Variety Start 2018-04-15 NA
12 12 Suntop Variety Start 2018-05-07 NA
13 1 Beckom Variety End 2018-05-31 NA
14 2 Dart Variety End 2018-06-30 NA
15 3 Flanker Variety End 2018-05-21 NA
16 4 Kittyhawk Variety End 2018-05-07 NA
17 5 Lancer Variety End 2018-05-21 NA
18 6 SOWING DATE Sowing date End 2018-06-07 NA
19 7 SOWING DATE Sowing date End 2018-06-27 NA
20 8 SOWING DATE Sowing date End 2018-07-04 NA
21 9 SOWING DATE Sowing date End 2018-07-13 NA
22 10 Spitfire Variety End 2018-06-21 NA
23 11 Sunmax Variety End 2018-05-07 NA
24 12 Suntop Variety End 2018-06-07 NA
25 13 <NA> Rainfall <NA> 2018-04-14 3.0
26 14 <NA> Rainfall <NA> 2018-03-30 7.0
27 15 <NA> Rainfall <NA> 2018-06-10 3.5
28 16 <NA> Rainfall <NA> 2018-06-18 4.0
29 17 <NA> Rainfall <NA> 2018-06-28 13.5
30 18 <NA> Rainfall <NA> 2018-07-23 3.0
31 19 <NA> Rainfall <NA> 2018-08-05 6.0
32 20 <NA> Rainfall <NA> 2018-08-25 23.0
33 21 <NA> Rainfall <NA> 2018-09-10 5.0')
#> Warning: 8 parsing failures.
#> row col expected actual file
#> 6 -- 6 columns 8 columns literal data
#> 7 -- 6 columns 8 columns literal data
#> 8 -- 6 columns 8 columns literal data
#> 9 -- 6 columns 8 columns literal data
#> 18 -- 6 columns 8 columns literal data
#> ... ... ......... ......... ............
#> See problems(...) for more details.
现在正在绘图
library(tidyverse)
library(patchwork)
sowdate <- sowdate.df %>% mutate(Element = factor(Element,levels=c("SOWING DATE","Dart","Spitfire","Suntop","Beckom","Flanker","Lancer","Sunmax","Kittyhawk")),
date = as.Date(Date1),
rain = as.numeric(rain))
#> Warning: NAs introduced by coercion
p1 <- ggplot(sowdate, aes(date, Element, Color = Category, group=Item)) +
geom_line(size = 10)
p2 <- ggplot(sowdate) +
geom_col(aes(date, rain))
p1 + p2 + plot_layout(nrow = 2)
#> Warning: Removed 8 rows containing missing values (geom_path).
#> Warning: Removed 24 rows containing missing values (position_stack).
您可以从第一个绘图中删除轴标签和标题,以使它们更加靠近。
由reprex package(v0.3.0)在2020-01-21创建