r - Add legend category to ggplot2 line plot with two y-axes -
i'm trying make graph using ggplot2
2 different y-axes (appropriate , not misleading, promise).
i've got legend first graph, can't seem able add 1 second. nor can label axis.
my code quite long-winded i've abbreviated coding of p1
don't think need change that.
p1 <- p + theme(legend.position = "top") p2 <- ggplot(concb.only.for.r, aes(concb.ml, concb)) geom_line(colour = "#000099") + theme_bw() + theme(panel.background = element_rect(fill = na)) + theme(legend.position = "top") g1 <- ggplot_gtable(ggplot_build(p1)) g2 <- ggplot_gtable(ggplot_build(p2)) pp <- c(subset(g1$layout, name == "panel", se = t:r)) g <- gtable_add_grob(g1, g2$grobs[[which(g2$layout$name == "panel")]], pp$t, + pp$l, pp$b, pp$l) ia <- which(g2$layout$name == "axis-l") ga <- g2$grobs[[ia]] ax <- ga$children[[2]] ax$widths <- rev(ax$widths) ax$grobs <- rev(ax$grobs) ax$grobs[[1]]$x <- ax$grobs[[1]]$x - unit(1, "npc") + unit(0.15, "cm") g <- gtable_add_cols(g, g2$widths[g2$layout[ia, ]$l], length(g$widths) - 1) g <- gtable_add_grob(g, ax, pp$t, length(g$widths) - 1, pp$b) grid.draw(g)
Comments
Post a Comment