Reference: https://github.com/Ather-Energy/ggTimeSeries
ggplot2 extensions-
ggTimeSeries
prepared by Volkan OBAN
Examples:
devtools::install_github('Ather-Energy/ggTimeSeries')
minimalTheme = theme_set(theme_bw(12))
minimalTheme = theme_update(
axis.ticks = element_blank(),
legend.position = 'none',
strip.background = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank()
)
set.seed(1)
dtData = data.table(
DateCol = seq(
as.Date("1/01/2014", "%d/%m/%Y"),
as.Date("31/12/2015", "%d/%m/%Y"),
"days"
),
ValueCol = runif(730)
)
dtData[, ValueCol := ValueCol + (strftime(DateCol,"%u") %in% c(6,7) * runif(1) *
0.75), .I]
dtData[, ValueCol := ValueCol + (abs(as.numeric(strftime(DateCol,"%m")) - 6.5)) *
runif(1) * 0.75, .I]
# base plot
p1 = ggplot_calendar_heatmap(
dtData,
'DateCol',
'ValueCol'
)
# adding some formatting
p1 +
xlab(NULL) +
ylab(NULL) +
scale_fill_continuous(low = 'green', high = 'red') +
facet_wrap(~Year, ncol = 1)
# creating some categorical data
dtData[, CategCol := letters[1 + round(ValueCol * 7)]]
# base plot
p2 = ggplot_calendar_heatmap(
dtData,
'DateCol',
'CategCol'
)
# adding some formatting
p2 +
xlab(NULL) +
ylab(NULL) +
facet_wrap(~Year, ncol = 1)
# creating some data
set.seed(1)
dfData = data.frame(x = 1:1000, y = cumsum(rnorm(1000)))
# base plot
p1 = ggplot_horizon(dfData, 'x', 'y')
print("If you're seeing any vertical white stripes, it's a display thing.")
## [1] "If you're seeing any vertical white stripes, it's a display thing."
# adding some formatting
p1 +
xlab(NULL) +
ylab(NULL) +
scale_fill_continuous(low = 'green', high = 'red') +
coord_fixed( 0.5 * diff(range(dfData$x)) / diff(range(dfData$y)))
set.seed(10)
dfData = data.frame(
Time = 1:1000,
Signal = abs(
c(
cumsum(rnorm(1000, 0, 3)),
cumsum(rnorm(1000, 0, 4)),
cumsum(rnorm(1000, 0, 1)),
cumsum(rnorm(1000, 0, 2))
)
),
VariableLabel = c(rep('Class A', 1000), rep('Class B', 1000), rep('Class C',
1000), rep('Class D', 1000))
)
# base plot
p1 = ggplot(dfData, aes(x = Time, y = Signal, group = VariableLabel, fill =
VariableLabel)) +
stat_steamgraph()
# adding some formatting
p1 +
xlab(NULL) +
ylab(NULL) +
coord_fixed( 0.2 * diff(range(dfData$Time)) / diff(range(dfData$Signal)))
Example:
# creating some data
set.seed(1)
dfData = data.frame(Signal = pmax(pmin(rnorm(10000), 3), -3))
dfData2 = data.frame(
Signal = round(head(dfData$Signal, -1),0),
NextSignal = round(tail(dfData$Signal, -1),0),
Weight = 1
)
# base plot
p1 = ggplot(dfData2, aes(xbucket = Signal, ybucket = NextSignal, fill =
NextSignal, weight = Weight) )+
stat_marimekko(color = 'black', xlabelyposition = -0.1)
# adding some formatting
p1 +
xlab('Signal occurrence %') +
ylab('Signal | Next signal occurrence %') +
scale_x_continuous(breaks = 0:10/10) +
scale_y_continuous(breaks = 0:10/10)
ggtimeseries-->ggplot2 extensions

ggtimeseries-->ggplot2 extensions

  • 1.
    Reference: https://github.com/Ather-Energy/ggTimeSeries ggplot2 extensions- ggTimeSeries preparedby Volkan OBAN Examples: devtools::install_github('Ather-Energy/ggTimeSeries') minimalTheme = theme_set(theme_bw(12)) minimalTheme = theme_update( axis.ticks = element_blank(), legend.position = 'none', strip.background = element_blank(), panel.border = element_blank(), panel.background = element_blank(), panel.grid = element_blank(), panel.border = element_blank() ) set.seed(1) dtData = data.table( DateCol = seq( as.Date("1/01/2014", "%d/%m/%Y"), as.Date("31/12/2015", "%d/%m/%Y"), "days" ), ValueCol = runif(730) ) dtData[, ValueCol := ValueCol + (strftime(DateCol,"%u") %in% c(6,7) * runif(1) * 0.75), .I] dtData[, ValueCol := ValueCol + (abs(as.numeric(strftime(DateCol,"%m")) - 6.5)) * runif(1) * 0.75, .I] # base plot p1 = ggplot_calendar_heatmap( dtData, 'DateCol', 'ValueCol' ) # adding some formatting p1 + xlab(NULL) + ylab(NULL) + scale_fill_continuous(low = 'green', high = 'red') +
  • 2.
    facet_wrap(~Year, ncol =1) # creating some categorical data dtData[, CategCol := letters[1 + round(ValueCol * 7)]] # base plot p2 = ggplot_calendar_heatmap( dtData, 'DateCol', 'CategCol' ) # adding some formatting p2 + xlab(NULL) + ylab(NULL) + facet_wrap(~Year, ncol = 1)
  • 3.
    # creating somedata set.seed(1) dfData = data.frame(x = 1:1000, y = cumsum(rnorm(1000))) # base plot p1 = ggplot_horizon(dfData, 'x', 'y') print("If you're seeing any vertical white stripes, it's a display thing.") ## [1] "If you're seeing any vertical white stripes, it's a display thing." # adding some formatting p1 + xlab(NULL) + ylab(NULL) + scale_fill_continuous(low = 'green', high = 'red') + coord_fixed( 0.5 * diff(range(dfData$x)) / diff(range(dfData$y)))
  • 4.
    set.seed(10) dfData = data.frame( Time= 1:1000, Signal = abs( c( cumsum(rnorm(1000, 0, 3)), cumsum(rnorm(1000, 0, 4)), cumsum(rnorm(1000, 0, 1)), cumsum(rnorm(1000, 0, 2)) ) ), VariableLabel = c(rep('Class A', 1000), rep('Class B', 1000), rep('Class C', 1000), rep('Class D', 1000)) ) # base plot p1 = ggplot(dfData, aes(x = Time, y = Signal, group = VariableLabel, fill = VariableLabel)) + stat_steamgraph() # adding some formatting p1 + xlab(NULL) + ylab(NULL) + coord_fixed( 0.2 * diff(range(dfData$Time)) / diff(range(dfData$Signal)))
  • 5.
    Example: # creating somedata set.seed(1) dfData = data.frame(Signal = pmax(pmin(rnorm(10000), 3), -3)) dfData2 = data.frame( Signal = round(head(dfData$Signal, -1),0), NextSignal = round(tail(dfData$Signal, -1),0), Weight = 1 ) # base plot p1 = ggplot(dfData2, aes(xbucket = Signal, ybucket = NextSignal, fill = NextSignal, weight = Weight) )+ stat_marimekko(color = 'black', xlabelyposition = -0.1) # adding some formatting p1 + xlab('Signal occurrence %') + ylab('Signal | Next signal occurrence %') + scale_x_continuous(breaks = 0:10/10) + scale_y_continuous(breaks = 0:10/10)