我提出previous post关于尝试获取与此类似的图表:http://i.imgur.com/HVuxOKy.png
到目前为止,我的图表看起来像这样:http://imgur.com/Tw7SNWC
到目前为止,这是我的代码,我真的很感激任何反馈或方法来改进它,因为我对R相对较新。我遇到的一个主要问题是将所有数据(1953-2013)绘制成图表到一个水年(10月至9月)。我创建了一个解决方案,但我确定它并不理想。
library(ggplot2)
library(plyr)
library(reshape2)
library(scales)
## Read Data
df <- read.csv("Salt River Flow.csv")
## Convert Date column to R-recognized dates
df$Date <- as.Date(df$Date, "%m/%d/%Y")
## Finds Water Years (Oct - Sept)
df$WY <- as.POSIXlt(as.POSIXlt(df$Date)+7948800)$year+1900
## Normalizes Water Years so stats can be applied to just months and days
df$w <- ifelse(month(df$Date) %in% c(10,11,12), 1900, 1901)
## Creates New Date (dat) Column
df$dat <- as.Date(paste(df$w,month(df$Date),day(df$Date), sep = "-"))
## Creates new data frame with summarised data by MonthDay
PlotData <- ddply(df, .(dat), summarise,
Min = min(Flow), "10%" = quantile(Flow, p = 0.05), "25%" = quantile(Flow, p = 0.25),
Median = quantile(Flow, p = 0.50), Mean = mean(Flow), "75%" = quantile(Flow, p = 0.75),
"90%" = quantile(Flow, p = 0.90), Max = max(Flow))
## Melts data so it can be plotted with ggplot
m <- melt(PlotData, id="dat")
## Plots
p <- ggplot(m, aes(dat, value, group = variable, colour = variable))
+ geom_line() + labs(x = "Month",y = "Flow") +
scale_x_date(labels=date_format("%b"))
正如你所看到的,我非常接近我想要的东西,但是我有时间让色带(多边形?)起作用,因为我不知道如何制作“ymin”和“ymax” “根据我的数据变化。
任何评论或想法都将非常感谢!!!
谢谢!