library(ggplot2)
library (RMySQL)
con <- dbConnect(MySQL(), user="*****", password="*****", dbname="be", host="192.168.2.50")
rs <- dbSendQuery(con,"select id, day(datum) as dagen, datum, T1_Used, T2_Used, Gas_Used, T1_Produced, T2_Produced, day(datum) as day from meter
where datum >= date_sub(date_format(now(), '%Y-%m-%d 00:00:00'), interval 1 month)
group by date(datum), day(datum)
order by id")
data <- fetch(rs,n=-1)
# Bepaal het aantal dagen van de afgelopen maand.
daysPerMonth <- length(data$id)
# dal tarief
t1 <- data$T1_Used
t1x <- t1
t1 <- t1[2:(daysPerMonth+1)]
t1x <- t1x[1:daysPerMonth]
t1 <- (t1 - t1x)
rm(t1x)
# piek tarief
t2 <- data$T2_Used
t2x <- t2
t2 <- t2[2:(daysPerMonth+1)]
t2x <- t2x[1:daysPerMonth]
t2 <- (t2 - t2x)
rm(t2x)
# Bereken het verbruikt deze dag tot op dit moment
totaalVerbruik <- 0.0
blnTel <- FALSE
for (i in 1:(length(data$dagen)-1)) {
if (data$dagen[i] == 1) {
blnTel <- TRUE
}
if (blnTel){
totaalVerbruik <- totaalVerbruik + t1[i] + t2[i]
}
}
# Maak de vectoren aan voor de barplot
fase <- c(rep("dal", daysPerMonth), rep("piek",daysPerMonth))
verbruik <- c(t1, t2)
dagen <- c(data$dagen[1:daysPerMonth], data$dagen[1:daysPerMonth])
# Creeer hiervan de dataset
mydata <- data.frame(fase, dagen, verbruik)
# Maak de labels aan
vtext = verbruik
# Door een afronding kan een hele lage 0 waarde blijven bestaan. Filter die er uit
vtext[vtext<0.01]=NA
myPlot <- ggplot(data=mydata, aes(x=factor(dagen, levels=data$dagen[1:daysPerMonth]), y=verbruik, fill=fase)) +
geom_bar(stat="identity", color="black") +
geom_text(aes(label=round(vtext,2)), size=3, vjust=-0.25, position="stack") +
scale_fill_manual(values=c("green", "red")) +
labs(x="Tijd in dagen van de afgelopen 31 dagen", y="Verbruik in Kwh", title="Verbruik over de laatste 31 dagen",
subtitle=paste0("Verbruik vanaf de 1e van de maand ", round(totaalVerbruik,3), " Kwh")) +
theme_minimal()
path <- "/var/www/html/images/"
ggsave(filename="PerMonth.png", device="png", width = 10.6, height=5.1 ,plot=myPlot, path=path, bg="transparent")
myPlot
all_cons <- dbListConnections(MySQL())
for(con in all_cons)
dbDisconnect(con)
rm(all_cons)