Let say I have 2 ggplots
library(ggplot2)
library(cowplot)
set.seed(1)
data = structure(list(fecha = structure(c(1317452400, 1317538800, 1317625200,
1317711600, 1317798000, 1317884400, 1317970800, 1318057200, 1318143600,
1318230000, 1318316400, 1318402800, 1318489200, 1318575600, 1318662000,
1318748400, 1318834800, 1318921200, 1319007600, 1319094000), class = c("POSIXct",
"POSIXt"), tzone = ""), TempMax = c(26.58, 27.78, 27.9, 27.44,
30.9, 30.44, 27.57, 25.71, 25.98, 26.84, 33.58, 30.7, 31.3, 27.18,
26.58, 26.18, 25.19, 24.19, 27.65, 23.92), TempMedia = c(22.88,
22.87, 22.41, 21.63, 22.43, 22.29, 21.89, 20.52, 19.71, 20.73,
23.51, 23.13, 22.95, 21.95, 21.91, 20.72, 20.45, 19.42, 19.97,
19.61), TempMin = c(19.34, 19.14, 18.34, 17.49, 16.75, 16.75,
16.88, 16.82, 14.82, 16.01, 16.88, 17.55, 16.75, 17.22, 19.01,
16.95, 17.55, 15.21, 14.22, 16.42)), .Names = c("fecha", "TempMax",
"TempMedia", "TempMin"), row.names = c(NA, 20L), class = "data.frame")
data['val'] = rnorm(dim(data)[1], 10000, 1)
data
mycolor = c('red', 'green'); names(mycolor) = c('TempMax', 'TempMedia')
p1 <- ggplot(data, aes(x = fecha)) +
geom_line(aes(y = TempMax, colour = 'TempMax'), size = 1.2) +
geom_line(aes(y = TempMedia, colour = 'TempMedia'), size = 1.2) +
scale_colour_manual('color', breaks = names(mycolor), values = mycolor)
p2 = ggplot(data, aes(x = fecha)) +
geom_bar(aes(y = val), stat = "identity", color = 'grey')
The individual plots for p1 and p2 are perfect, however I want to club them in a single plot window with p2 as secondary axis. I took some reference from ggplot with 2 y axes on each side and different scales, and tried to implement that with below code
ggdraw(insert_yaxis_grob(p1, get_y_axis(p2, position='right')))
But it does not seem to be working. Could you please help to understand the right method, given that data for p2 is not any transformation of the date for p1.
Any pointer will be highly appreciated.
