Layout displays blank or axis overlap using dual axis graphs
Open
Nobody has claimed this yet.
- Dominant language
- R
- Stars
- 2.7k
- Forks
- 641
- PR merge metrics
- No merged PRs in 30d
Description
I have two dual yaxis plots that I'm trying to combine with plotly's layout function. Both plots work fine independently, but when combined some aspects are blank and the axis of the two graphs are combined on one graph. What do I need to do to get them to display properly, one on top of the other.
#my data
times.winter<- data.frame(radtime = c(0.0,0.26,0.52,0.78,1.05,1.31,1.57,1.83,2.09,2.36,2.62,2.88,3.14,3.4,3.66,3.93,4.19,4.45,4.71,4.97,5.23,5.50,5.76,6.02),
mean.Ts2 = c(11.2,11.0,10.8,10.7,10.5,10.4,10.3,10.4,10.5,10.7,11.0,11.3,11.6,11.9,12.1,12.1,12.2,12.3,12.3,12.3,12.1,12.0,11.8,11.7,11.5),
activity = c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4),
time = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23))
times.summer<- data.frame(radtime = c(0.0,0.26,0.52,0.78,1.05,1.31,1.57,1.83,2.09,2.36,2.62,2.88,3.14,3.4,3.66,3.93,4.19,4.45,4.71,4.97,5.23,5.50,5.76,6.02),
mean.Ts2 = c(17.1,16.9,16.7,16.6,16.4,16.3,16.3,16.3,16.4,16.6,16.8,17.1,17.3,17.5,17.7,17.8,17.8,17.8,17.7,17.6,17.5,17.4,17.3,17.1),
activity = c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4),
time = c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23))
library(plotly)
Fig1<-plot_ly(times.winter) %>%
add_bars(x = ~Time, y = ~activity, type = "bar",
marker = list(color = c("#999999","#999999","#999999","#999999","#999999","#999999",
"#999999","#999999","#999999","#999999","#999999","#999999",
"#999999","#999999","#4b0092","#999999","#999999","#999999",
"#999999","#999999","#999999","#999999","#999999","#999999"))) %>%
add_lines(x = ~Time, y = ~mean.Ts2, yaxis = "y2", line = list(color = c("#E69F00"), width = 6)) %>%
layout(xaxis = list(title = "Time",tick0 =0, dtick = 6),
yaxis = list(showline = TRUE, side = "left",
title = "Number Active",
showgrid = F),
yaxis2 = list(showline = TRUE,
tickfont = list(color = "#E69F00"),
dtick=0.5,
overlaying = "y",
side = "right",
title = "Soil Temperature °C",
color = "#E69F00",
range = list(10,13),
showgrid = F),
showlegend = FALSE,
margin = list(pad = 0, b = 50, l = 50, r = 50))
Fig2<-plot_ly(times.summer) %>%
add_bars(x = ~Time, y = ~activity, type = "bar",
marker = list(color = c("#999999","#999999","#999999","#999999","#999999","#999999","#999999",
"#999999","#999999","#999999","#999999","#4b0092","#999999",
"#999999","#999999","#999999","#999999","#999999","#999999",
"#999999","#999999","#999999","#999999","#999999"))) %>%
add_lines(x = ~Time, y = ~mean.Ts2, yaxis = "y2", line = list(color = c("#E69F00"), width = 6)) %>%
layout(xaxis = list(title = "Time",tick0 =0, dtick = 6),
yaxis = list(showline = TRUE, side = "left",
title = "Number Active",
showgrid = F),
yaxis2 = list(showline = TRUE,
tickfont = list(color = "#E69F00"),
dtick=0.5,
overlaying = "y",
side = "right",
title = "Soil Temperature °C",
color = "#E69F00",
range = list(16,18),
showgrid = F),
showlegend = FALSE,
margin = list(pad = 0, b = 50, l = 50, r = 50))
library(processx)
Fig1
Fig2
fig <- subplot(Fig1, Fig2, nrows = 2) %>%
layout(title = '')
fig
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Fig1 and Fig2 definitions, then inspect the subplot(Fig1, Fig2, nrows = 2) call and its final layout. Run the example as provided and compare the combined result with each standalone figure; done means both plots render one above the other with their dual y-axes kept distinct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- r
- Domain
- data-visualization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100