Click through the FY2016 to FY2021 tabs to see how the wholesale price of electricity has changed in South Australia as Solar Photovoltaic generation has been rolled out.

FY2016

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2016.

FY2017

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2017.

FY2018

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2018.

FY2019

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2019.

FY2020

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2020.

FY2021

Electricity Price and Solar Photovoltaic Generation in South Australia for Year Ending August 2021.

Prices turn negative as shown in red.

Code

The following code was used generate six slides.

library(ggplot2)
library(lubridate)
library(dplyr)

SAData <- read.delim("SAData.txt")

SAData$DateTime <- ymd_hms(SAData$DateTime)

SAData2016 <- filter(SAData, Year=="FY2016")
SAData2017 <- filter(SAData, Year=="FY2017")
SAData2018 <- filter(SAData, Year=="FY2018")
SAData2019 <- filter(SAData, Year=="FY2019")
SAData2020 <- filter(SAData, Year=="FY2020")
SAData2021 <- filter(SAData, Year=="FY2021")

p1 <- ggplot(SAData2021, aes(x = Time, y = AvgPrice)) +
     geom_line(aes(group = Month), color = "grey") +
     geom_point(shape = 21, stroke = 0, size = 1.15, aes(colour = factor(sign(AvgPrice)))) +
     scale_fill_manual(values = c("skyblue", "grey", " red "), breaks = c("1", "0", "-1"), labels = c("Positive ", "Zero", " Negative ")) +
     coord_cartesian(ylim = c(-100, 1000)) +
     geom_line(aes(group = Month, y = SolarMWh/15),  color = "orange") +
     scale_y_continuous(  "Average Price ($/MWh)", sec.axis = sec_axis(~ . * 15, name = "Solar Generation (MWh)")   ) +
     facet_wrap(~factor(Season, levels=c('Spring', 'Summer', 'Autumn', 'Winter'))) +
     labs(title = "Electricity Price and Solar PV Generation",  x = "Time of Day",  y = "Price", color = "Price") +
     scale_x_datetime(date_labels = "%H:%M")

Data Reference