Skip to content

Instantly share code, notes, and snippets.

View johnDorian's full-sized avatar

John Dorian johnDorian

View GitHub Profile
@johnDorian
johnDorian / ggplot_cbind_rbind_example.r
Created January 12, 2015 09:26
Using cbind and rbind for ggplot plots
# load the libraries
library(ggplot2)
library(gtable)
library(gridExtra)
# Create the plots
p1 <- ggplot() + geom_point(aes(1,1))
p2 <- ggplot() + geom_point(aes(2,2))
p3 <- ggplot() + geom_point(aes(3,3))
p4 <- ggplot() + geom_point(aes(4,4))
# Firstly create two columns (the first and second column)
@johnDorian
johnDorian / 2nd_axis.r
Created December 1, 2014 15:42
Function to plot secondary axis in ggplot2
library(ggplot2)
library(gtable)
library(grid)
library(ggthemes)
# extract gtable
ggplot_second_axis <- function(p1, p2){
p2 <- p2 + theme() %+replace%
@johnDorian
johnDorian / rbind_ggplot_example.R
Created November 7, 2014 10:27
An example of using rbind_ggplot
library(ggplot2)
library(lubridate)
libarry(ggthemes)
# Create a series of dates (hourly)
hourly_date <- seq.POSIXt(dmy("01012012"), dmy("31122012"), by = "1 hour")
# Create some fictional fdom data.
fdom <- data.frame(date = hourly_date, fdom = sin(1:length(hourly_date)/300)+10)
# Create a series of dates (daily)
daily_date <- seq.POSIXt(dmy("01012012"), dmy("31122012"), by = "1 day")
### simulate some dates
dates <- seq.Date(as.Date("2014-01-01"), as.Date("2014-12-31"), by = "1 day")
### simulate some rainfall
rain <- sample(c(0,0,0,2,3), length(dates), replace=T)
data <- data.frame(date = dates,
daily_precip = rain)
# Use a rolling apply function to check the rainfall of the last 3 days including the day in question.
library(zoo)
@johnDorian
johnDorian / ggplot_piper.R
Last active May 6, 2022 16:09
Piper diagrams using ggplot2.
### A piper diagram based on the ternary plot example here: http://srmulcahy.github.io/2012/12/04/ternary-plots-r.html
### This was written quickly, and most likely contains bugs - I advise you to check it first.
### Jason Lessels jlessels@gmail.com
### This now consists of two functions. transform_piper_data transforms the data to match
### the coordinates of the piper diagram. ggplot_piper does all of the background.
transform_piper_data <- function(Mg, Ca, Cl,SO4, name=NULL){
if(is.null(name)){
@johnDorian
johnDorian / piper.R
Created May 1, 2013 09:53
piper diagrams from the hydrogeo package
piper <-
function (data, group = NULL, colours = NULL, pch = NULL, numbersymbols = FALSE,
X = 300, ...)
{
p <- (X/11)
q <- (X/22)
over100 <- data[data$Ca + data$Mg > 100 | data$Cl + data$SO4 >
100, ]
if (length(over100[, 1]) != 0) {
print("ERROR")
#####################################################################################################
### Aim: To test the significance of randomly allocating flow to 'midnight' water quality samples.
### Date Created: Thursday 2nd September 2010
### Author: Jason Lessels
### Packages required: TSAgg_0.2-1,geoR
### Notes: The script can easily be modified for the other water quality parameters, and the amount of simulations. Things to check:
###Both WQ and discharge must have the same initial time stamp (hours) before aggregation.
###WQ variable modify lines 52,60,146,186
###line 99 changes the amount of simulations to run.
###line 156 determines when the bushfire occurred.
setwd("~/Documents/code/francesca")
library(TSAgg)
quality<-read.csv("Burke_worked.csv",header=T)
head(quality)
q2<-timeSeries(quality$date,"%d/%m/%Y %H:%M")