首页 > 解决方案 > 如何在R中以一年中的一天为y轴和年份为x轴绘制日历日期?

问题描述

我有一个数据集,它将植被季节的开始、最大和结束描述为 18 年以上的一年中的一天,如下所示:

Year   Day of Green  Var Green  Day Max  Day Senesc  Var Senesc  Veg Length
2000   111           4          137      253         11          142
2001   115           5          158      252         19          137
2002   110           4          136      263         10          153
2003   112           3          143      271         16          159
2004   105           4          142      279         13          174
2005   106           5          156      278         11          172

现在我想要一个图,它将年份显示为 xaxis,yaxis 显示年份(DOY)。所以我可以确定绿化、最大绿化和褐变(衰老)的日子。

谢谢你的想法。

标签: r

解决方案


不确定您遇到了什么问题,但这是一种使用以下方法获取该图的方法ggplot

数据

structure(list(Year = 2000:2005, Day.of.Green = c(111L, 115L, 
110L, 112L, 105L, 106L), Var.Green = c(4L, 5L, 4L, 3L, 4L, 5L
), Day.Max = c(137L, 158L, 136L, 143L, 142L, 156L), Day.Senesc = c(253L, 
252L, 263L, 271L, 279L, 278L), Var.Senesc = c(11L, 19L, 10L, 
16L, 13L, 11L), Veg.Length = c(142L, 137L, 153L, 159L, 174L, 
172L)), class = "data.frame", row.names = c(NA, -6L))

代码

library(ggplot2)
ggplot(dat, aes(x = Year, y = Day.of.Green)) + geom_point() + geom_line()

输出 在此处输入图像描述

如果要添加多个列,可以使用 moregeom_pointgeom_line分别添加点和线的语句来执行此操作,顾名思义:

ggplot(dat, aes(x = Year)) + 
  geom_point(aes(y = Day.of.Green), color = 'dark red') + geom_line(aes(y = Day.of.Green), color = 'dark red') + 
  geom_point(aes(y = Day.Senesc), color = 'black') + geom_line(aes(y = Day.Senesc), color = 'black') + 
  xlab('Year') + ylab('Day of Year')

在此处输入图像描述

您可以查看ggplot选项以获得不同的符号、颜色、绘图类型、趋势线等。


推荐阅读