绘制带状图,两年的数据叠加在R(ggplot2)中的相同图上

时间:2016-03-24 18:17:18

标签: r ggplot2

我正在处理一些国家气候数据中心的最低和最高温度数据。我想要做的是在一个功能区图表中将两个相同的数据放在一起。 。 。因此,x轴是每个集合和月份的月和日最终是一个因素。以下是一年的数据。我希望第二年能够在同一张图上。

This is one year of data above plotting min temperature to max temperature in a ribbon plot

这是一组非常类似于真实数据的示例代码,尽管geom_ribbon函数尚未返回完全类似于上面任何帮助的图形,并且我们很感激:

dates <- c(20110101,    20110102,   20110103,   20110104,   20110105,   20110106,   20110107,   20120101,   20120102,   20120103,   20120104,   20120105,   20120106,   20120107)
Tmin <- c(-5,   -4, -2, -10,    -2, -1, 2,  -10,    -11,    -12,    -10,    -5, -3, -1)
Tmax <- c(3,    5,  6,  4, 2, 7,    9,  -1, 0,  1,  2,  1,  4,  8)
winter <- c("ONE","ONE","ONE","ONE","ONE","ONE","ONE","TWO","TWO","TWO","TWO","TWO","TWO","TWO")

df <- data.frame(cbind(dates, Tmin, Tmax, winter))
df$dates <- strptime(df$dates, format="%Y%m%d")
df$Tmax <- as.numeric(df$Tmax)
df$Tmin <- as.numeric(df$Tmin)
str(df)

ggplot(df, aes(x = dates, y =Tmax))+
  geom_ribbon(aes(ymin=Tmax, ymax=Tmin), fill ="darkgrey", color="dark grey")

1 个答案:

答案 0 :(得分:3)

两条不同颜色的重叠色带怎么样?

library(lubridate)
df$yday <- yday(df$dates)
df$year <- year(df$dates)
ggplot(df, aes(yday)) + geom_ribbon(aes(ymax=Tmax, ymin=Tmin, fill=factor(year)), alpha=.5)