Omar Gonzales
Omar Gonzales

Reputation: 4008

R: plotly graph with dual Y axis?

I've found this question but answer is not up to date to produce the correct result.

Second Y-Axis in a R plotly graph

How can I plot a dual y axis plot?

df <- data.frame(MediaDate = as.Date(c("2016-04-01","2016-05-01","2016-06-01"), format = "%Y-%m-%d"),
                 Spend = c(39654, 34446, 27402),
                 Visits = c(19970, 14450, 12419))



plot_ly(df, x = ~MediaDate, y = ~Spend, type = "bar", name = "Spend") %>%
  add_trace(x = ~MediaDate, y = ~Visits, mode = "lines", yaxis = "y2", name = "Visits") %>%
  layout(yaxis2 = list(overlaying = "y", side = "right"))

Produces:

enter image description here

What I need (but instead of a bar and a line, 2 lines):

enter image description here

Upvotes: 2

Views: 2550

Answers (1)

Vishesh Shrivastav
Vishesh Shrivastav

Reputation: 2129

Here's a way to do this:

df <- data.frame(MediaDate = as.Date(c("2016-04-01","2016-05-01","2016-06-01"), 
                                     format = "%Y-%m-%d"),
                 Spend = c(39654, 34446, 27402),
                 Visits = c(19970, 14450, 12419))

old.y <- list(
  side = "left",
  title = "Spend"
)

new.y <- list(
  overlaying = "y",
  side = "right",
  title = "Visits"
)

plot_ly(df) %>%
  add_lines(x = ~MediaDate, y = ~Spend, yaxis="y1") %>%
  add_lines(x = ~MediaDate, y = ~Visits, yaxis = "y2") %>%
  layout(yaxis2 = new.y, yaxis = old.y, xaxis = list(title="MediaDate"))

enter image description here

Upvotes: 6

Related Questions