library(ggplot2) library(grid) library(gridExtra) library(scales) epw = "~/weather-datasets/GBR_London-Heathrow.AP.1989_2080High50pct_CIBSETM49.epw" system(paste("cat ",epw, "| tail -8760 > test.csv")) EPW <- read.csv("test.csv", header=FALSE) EPW$OAT = EPW[,7] EPW$RH = EPW[,9] EPW$MDH <- paste(EPW$V2,EPW$V3,EPW$V4) EPW$M = as.POSIXlt(EPW$MDH,format="%m") EPW$DT = as.POSIXlt(EPW$MDH,format="%m %d %H") EPW$HR = as.numeric(format(EPW$DT, "%H")) EPW$hum_ratio=((2.16679*((610.78*exp((EPW$OAT/(EPW$OAT+238.3))*17.2694))*(EPW$RH/100)/(273.15+EPW$OAT)))/1275.4) temps <- data.frame() for (i in 0:23) {temps <- rbind(temps,c( i, 22, 23.5, mean(subset(subset(EPW, HR==i), format(DT,'%m')=='01')$OAT), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='04')$OAT), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='07')$OAT), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='10')$OAT))) } colnames(temps) <- c("hr","winter_temp_balance", "summer_temp_balance", "temp_jan", "temp_apr", "temp_jul", "temp_oct") solar <- data.frame() for (i in 0:23) {solar <- rbind(solar,c( i, mean(subset(subset(EPW, HR==i), format(DT,'%m')=='01')$V15), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='04')$V15), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='07')$V15), mean(subset(subset(EPW, HR==i), format(DT,'%m')=='10')$V15))) } colnames(solar) <- c("hr", "dirnorrad_jan", "dirnorrad_apr", "dirnorrad_jul", "dirnorrad_oct") pdf("plots2.pdf") #ggplot(diamonds, aes(x=carat, y=price)) + geom_point() p1 = ggplot(temps, aes(x=hr)) + geom_line(aes(y = temp_jan)) + geom_ribbon(aes(y = winter_temp_balance, ymin = 21, ymax = 23), colour="red") + scale_y_continuous(limits = c(5, 40)) p2 = ggplot(temps, aes(x=hr)) + geom_line(aes(y = temp_apr)) + geom_ribbon(aes(y = summer_temp_balance, ymin = 22, ymax = 25), colour="red") + scale_y_continuous(limits = c(5, 40)) p3 = ggplot(temps, aes(x=hr)) + geom_line(aes(y = temp_jul)) + geom_ribbon(aes(y = summer_temp_balance, ymin = 22, ymax = 25), colour="red") + scale_y_continuous(limits = c(5, 40)) p4 = ggplot(temps, aes(x=hr)) + geom_line(aes(y = temp_oct)) + geom_ribbon(aes(y = winter_temp_balance, ymin = 21, ymax = 23), colour="red") + scale_y_continuous(limits = c(5, 40)) s1 = ggplot(solar, aes(x=hr, y=dirnorrad_jan)) + geom_bar(stat='identity') + scale_y_continuous(limits = c(0, 800)) s2 = ggplot(solar, aes(x=hr, y=dirnorrad_apr)) + geom_bar(stat='identity') + scale_y_continuous(limits = c(0, 800)) s3 = ggplot(solar, aes(x=hr, y=dirnorrad_jul)) + geom_bar(stat='identity') + scale_y_continuous(limits = c(0, 800)) s4 = ggplot(solar, aes(x=hr, y=dirnorrad_oct)) + geom_bar(stat='identity') + scale_y_continuous(limits = c(0, 800)) grid.arrange(p1, p2, p3, p4, s1, s2, s3, s4, ncol = 2) dev.off()