I am looking to create a graph where I can show multiple trends over a date format. The bottom X-Axis being date say Jan - Jun, on the left I want to have a data set in a bar graph and the right axis showing a line plot. Where can I find an example on how to create this perhaps using ggplot?
There is a sec_axis function in ggplot with which you can define a y axis on the right. Notice that the scale of the second y axis must be a transformation of the primary axis. Will that work for you?
in plotly you make a bar chart, then add a trace ( a line) and set the layout to be on the right axis)
library(tidyverse) library(plotly) set.seed(42) (df <- tibble( date_x = seq.Date(from=as.Date("2019-01-01"), by = "1 month", length.out = 12), barheight_y1 = sample.int(n = 100,size=12), lineheight_y2 = runif(12) )) (p <- plot_ly(data=df, x=~date_x, y=~barheight_y1, type="bar", name="mybar" ) %>% add_trace( type="scatter", mode="lines+markers", y=~lineheight_y2, name="myline", yaxis="y2" ) %>% layout(yaxis=list(side="left",title="barheight"), yaxis2=list(side="right",title="lineheight",overlaying='y')))
Here is a ggplot example.
library(ggplot2) DF <- data.frame(Date = lubridate::ymd(c("2020-01-01", "2020_02-01", "2020-03-01")), Var1 = c(4,7,6), Var2 = c(33, 68, 45)) ggplot(DF, aes(Date)) + geom_col(mapping =aes( y = Var1), fill = "skyblue") + geom_line(mapping = aes(y = Var2/10), color = "red") + #scale value sown by*10 scale_y_continuous(sec.axis = sec_axis(~. * 10, #scale labels up by *10 name = "Second Variable")) + labs(y = "First Variable") + theme(axis.title.y.right = element_text(color = "red"))
Created on 2020-06-25 by the reprex package (v0.3.0)
Perfect, this was exactly what I was looking for.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.