【发布时间】:2018-08-10 17:15:21
【问题描述】:
我是 R 新手。我已编写此代码以使用 highcharter 库生成, 这是基于我拥有 11 年的数据框,即 2005 年 - 2011 年(4 月 - 10 月)
以下代码适用于一年。我想创建一个循环或类似的东西来分别为每年创建图表。此代码工作正常,但我必须手动更改每年的日期并生成图表。
Year_2005_rain <- subset(Seven,
time >= as.Date('2005-04-01') &
time <= as.Date('2005-10-31'))
Year_2005_flow<- subset(Seven_flow,
time >= as.Date('2005-04-01') &
time <= as.Date('2005-10-31'))
Year_2005_inflow<- subset(Seven_inflow,
time >= as.Date('2005-04-01') &
time <= as.Date('2005-10-31'))
merge1_05 <- merge(Year_2005_rain,
Year_2005_flow,
Year_2005_inflow, by="time")
names(Year_2005_rain) <- names(Year_2005_flow) <- names(Year_2005_inflow)
merge1_05 <- rbind(Year_2005_rain, Year_2005_flow,Year_2005_inflow)
colnames(merge1_05)[colnames(merge1_05)=="time"] <- "date"
colnames(merge1_05)[colnames(merge1_05)=="Discharge"] <- "value"
merge1_05$date = as.Date(merge1_05$date, format = "%Y/%m/%d")
merge1_05$variable <- c(rep("rain", 214), rep("discharge", 214), rep("inflow", 214))
hc_14<- highchart() %>%
hc_yAxis_multiples(list(title = list(text = "rainfall depth (mm)"), reversed = TRUE),
list(title = list(text = "flow (m3/s)"), opposite = TRUE)) %>%
hc_add_series(data = filter(merge1_05, variable == "rain") %>%
mutate(value = value) %>% .$value, type = "column") %>%
hc_add_series(data = filter(merge1_05, variable == "discharge") %>% .$value,
type = "spline", yAxis = 1) %>%
hc_add_series(data = filter(merge1_05, variable == "inflow") %>% .$value,
type = "spline", yAxis = 1) %>%
hc_xAxis(categories = merge1_05$date, title = list(text = "date"))
hc_14
【问题讨论】:
-
您可以使用
dput()分享您的数据吗?在此处查看更多信息meta.stackoverflow.com/questions/315885/… -
我想你可以试着把它包装成一个函数。然后你可以调用函数来绘制数据。
-
如果有样本数据,我可以帮你做这个功能。
-
@WenlongLiu 如果你能帮我实现一个很好的功能,这里是数据链接drive.google.com/open?id=1I76ASCvu7V7Iv-MjeVAAXONnyJqCyOWi
-
@Tung 我想分享我在这个例子中使用的数据,因为 dput() 太大而无法分享,我已经为数据添加了一个谷歌驱动器链接
标签: r loops time-series timeserieschart r-highcharter