From 7c841b57c5948bd7cb7cf142c8f2534a895cf2d5 Mon Sep 17 00:00:00 2001 From: stefano Date: Wed, 26 Sep 2018 18:58:06 +0200 Subject: [PATCH] Added scripts and the images --- plot1.R | 50 +++++++++++++++++++++++++++++++++++++++++++ plot1.png | Bin 0 -> 12264 bytes plot2.R | 49 ++++++++++++++++++++++++++++++++++++++++++ plot2.png | Bin 0 -> 16387 bytes plot3.R | 54 +++++++++++++++++++++++++++++++++++++++++++++++ plot3.png | Bin 0 -> 16723 bytes plot4.R | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ plot4.png | Bin 0 -> 44793 bytes 8 files changed, 215 insertions(+) create mode 100644 plot1.R create mode 100644 plot1.png create mode 100644 plot2.R create mode 100644 plot2.png create mode 100644 plot3.R create mode 100644 plot3.png create mode 100644 plot4.R create mode 100644 plot4.png diff --git a/plot1.R b/plot1.R new file mode 100644 index 00000000000..468b3ef185e --- /dev/null +++ b/plot1.R @@ -0,0 +1,50 @@ +library(dplyr) + +## PLotting function +plot1 <- function(){ + ## Build the environment + build_environment() + ## Read data + data <- read_dataset() + ## Set the png device + png("plot1.png") + ## Draw the Global_active_power histagram + with(data, hist(Global_active_power, col="red",xlab = "Global Active Power (kilowatts)", + main = "Global Active Power")) + ## Close the device + dev.off() +} + +## This function downloads and unzips the file needed by the project +build_environment <- function(){ + ## Directory to store the data + data_dir <- "data" + ## The actual date + date <- Sys.Date() + ## The URL containing the data + download_url <- "https://d396qusza40orc.cloudfront.net/exdata%2Fdata%2Fhousehold_power_consumption.zip" + ## The file containing the data + data_file <- file.path(data_dir,"household_power_consumption.txt") + ## The name og the zip file + zip_file <- file.path(data_dir,paste0("project_",date,".zip")) + ## Creation of the working environment + if(!file.exists(data_dir)){dir.create(data_dir)} + if(!file.exists(zip_file)){ + download.file(download_url, zip_file) + unzip(zip_file,exdir = data_dir) + } +} + +## This function reads the dataset and filter by the requested date range. +## Il casts the Date variable to Date class and the Time variable to Time class +read_dataset <- function(){ + ## Read the dataset + data <- read.delim("data/household_power_consumption.txt", sep = ";", header = TRUE, na.strings = "?") + ## Convert the Time column to Time class + data$Time <- strptime(paste(data$Date, data$Time), format="%d/%m/%Y %H:%M:%S") + ## Convert the Date column to Date class + data$Date <- as.Date(data$Date, format="%d/%m/%Y") + ## Filter the rows by date + data <- data[data$Date <= "2007-02-02" & data$Date >= "2007-02-01",] +} + diff --git a/plot1.png b/plot1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae879366965e92245fcf307643bdb23b4142d9f GIT binary patch literal 12264 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 "2007-02-01",] +} + diff --git a/plot2.png b/plot2.png new file mode 100644 index 0000000000000000000000000000000000000000..753d61e138732e7eea7f7c5bbd09b63689674510 GIT binary patch literal 16387 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�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 U*B>6R-TVOA4~kM15=P(t7d%^V7XSbN literal 0 HcmV?d00001 diff --git a/plot3.R b/plot3.R new file mode 100644 index 00000000000..3e848cff087 --- /dev/null +++ b/plot3.R @@ -0,0 +1,54 @@ +library(dplyr) + +## PLotting function +plot3 <- function(){ + ## Build the environment + build_environment() + ## Read data + data <- read_dataset() + ## Set the png device + png("plot3.png") + ## Draw the Energy sub metering graphs + plot(x = data$Time, y=data$Sub_metering_1, type = "l", xlab = "", ylab = "Energy sub metering", col="black") + with(data, lines(x=Time, y=Sub_metering_2, col="red")) + with(data, lines(x=Time, y=Sub_metering_3, col="blue")) + ## Add the legend + legend("topright",lwd=c(2.5,2.5), col=c("black","red","blue"), + legend=c("Sub_metering_1","Sub_metering_2","Sub_metering_3")) + ## Close the device + dev.off() +} + +## This function downloads and unzips the file needed by the project +build_environment <- function(){ + ## Directory to store the data + data_dir <- "data" + ## The actual date + date <- Sys.Date() + ## The URL containing the data + download_url <- "https://d396qusza40orc.cloudfront.net/exdata%2Fdata%2Fhousehold_power_consumption.zip" + ## The file containing the data + data_file <- file.path(data_dir,"household_power_consumption.txt") + ## The name og the zip file + zip_file <- file.path(data_dir,paste0("project_",date,".zip")) + ## Creation of the working environment + if(!file.exists(data_dir)){dir.create(data_dir)} + if(!file.exists(zip_file)){ + download.file(download_url, zip_file) + unzip(zip_file,exdir = data_dir) + } +} + +## This function reads the dataset and filter by the requested date range. +## Il casts the Date variable to Date class and the Time variable to Time class +read_dataset <- function(){ + ## Read the dataset + data <- read.delim("data/household_power_consumption.txt", sep = ";", header = TRUE, na.strings = "?") + ## Convert the Time column to Time class + data$Time <- strptime(paste(data$Date, data$Time), format="%d/%m/%Y %H:%M:%S") + ## Convert the Date column to Date class + data$Date <- as.Date(data$Date, format="%d/%m/%Y") + ## Filter the rows by date + data <- data[data$Date <= "2007-02-02" & data$Date >= "2007-02-01",] +} + diff --git a/plot3.png b/plot3.png new file mode 100644 index 0000000000000000000000000000000000000000..eb97ad8b87005bb21987d327c4d68adf4e8a5833 GIT binary patch literal 16723 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

T^0refckO|OTIYJMw2fuZVcEt&^ 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 FzW~@b?F#?^ literal 0 HcmV?d00001 diff --git a/plot4.R b/plot4.R new file mode 100644 index 00000000000..8acf4587a0a --- /dev/null +++ b/plot4.R @@ -0,0 +1,62 @@ +library(dplyr) + +## PLotting function +plot4 <- function(){ + ## Build the environment + build_environment() + ## Read data + data <- read_dataset() + ## Set the png device + png("plot4.png") + ## Prepare to draw graphs in a 2+2 grid + par(mfcol=c(2,2)) + ## Draw the Global_active_power histagram + plot(x = data$Time, y=data$Global_active_power, type = "l", xlab = "", ylab = "Global Active Power") + ## Draw the Energy sub metering graphs + plot(x = data$Time, y=data$Sub_metering_1, type = "l", xlab = "", ylab = "Energy sub metering", col="black") + with(data, lines(x=Time, y=Sub_metering_2, col="red")) + with(data, lines(x=Time, y=Sub_metering_3, col="blue")) + ## Add the legend + legend("topright",lwd=c(2.5,2.5), bty = "n", col=c("black","red","blue"), + legend=c("Sub_metering_1","Sub_metering_2","Sub_metering_3")) + ## Draw the Voltage graph + plot(x = data$Time, y=data$Voltage, type = "l", xlab="datetime", ylab = "Voltage") + ## Draw the Global reactive power graph + plot(x = data$Time, y=data$Global_reactive_power, type = "l", xlab="datetime", ylab = "Global_reactive_power") + ## Close the device + dev.off() +} + +## This function downloads and unzips the file needed by the project +build_environment <- function(){ + ## Directory to store the data + data_dir <- "data" + ## The actual date + date <- Sys.Date() + ## The URL containing the data + download_url <- "https://d396qusza40orc.cloudfront.net/exdata%2Fdata%2Fhousehold_power_consumption.zip" + ## The file containing the data + data_file <- file.path(data_dir,"household_power_consumption.txt") + ## The name og the zip file + zip_file <- file.path(data_dir,paste0("project_",date,".zip")) + ## Creation of the working environment + if(!file.exists(data_dir)){dir.create(data_dir)} + if(!file.exists(zip_file)){ + download.file(download_url, zip_file) + unzip(zip_file,exdir = data_dir) + } +} + +## This function reads the dataset and filter by the requested date range. +## Il casts the Date variable to Date class and the Time variable to Time class +read_dataset <- function(){ + ## Read the dataset + data <- read.delim("data/household_power_consumption.txt", sep = ";", header = TRUE, na.strings = "?") + ## Convert the Time column to Time class + data$Time <- strptime(paste(data$Date, data$Time), format="%d/%m/%Y %H:%M:%S") + ## Convert the Date column to Date class + data$Date <- as.Date(data$Date, format="%d/%m/%Y") + ## Filter the rows by date + data <- data[data$Date <= "2007-02-02" & data$Date >= "2007-02-01",] +} + diff --git a/plot4.png b/plot4.png new file mode 100644 index 0000000000000000000000000000000000000000..69d5b64b6f8e07caafc0597faf9d61d0ffb65389 GIT binary patch literal 44793 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