Как правильно размещать метки осей на графиках Plotly (R) с несколькими осями? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь создать график в R с помощью plotly (v. 4.9.2.1) с тремя панелями, совместно использующими ось X, последняя из которых показывает две переменные со второй на отдельной оси Y. Ниже я сделал игрушечный пример с поддельными данными, которые воспроизводят проблему с базисом c, с которой я столкнулся. Проблема заключается в том, что, как только я включаю вторую ось Y, я не могу заставить заголовок оси X правильно отображаться внизу всех графиков. В приведенном ниже коде я специально ввожу аргумент xaxis для всех трасс, хотя удаление этого не имеет никакого значения. Кроме того, размещение заголовка x в макете других графиков также ничего не меняет, и поле в конечном графике должно гарантировать, что метки галочки по оси Y видимы и не изменяет размещение меток оси.

set.seed(123)
x1 <- seq(from=1, to=100, by=5)
x2 <- seq(from=1, to=100, by=3)
x3 <- seq(from=1, to=100, by=2)
x4 <- c(1,23,50,80)

y1 <- rnorm(length(x1))
y2 <- rnorm(length(x2))
y3 <- rnorm(length(x3))
y4 <- c(0,10,0,10)

p1 <- plot_ly(showlegend=FALSE) %>%
  add_markers(x=x1, y=y1, xaxis='x')

p2 <- plot_ly(showlegend=FALSE) %>%
  add_markers(x=x2, y=y2, xaxis='x')

p3 <- plot_ly(showlegend=FALSE) %>%
  add_markers(x=x3, y=y3, yaxis='y3', xaxis='x') %>%
  add_lines(x=x4, y=y4, line=list(shape='hv'), yaxis='y4', xaxis='x') %>%
  layout(yaxis3=list(overlaying='y4'),
         yaxis4=list(side='right'),
         margin=list(r=50)))

subplot(p1, p2, p3, nrows = 3, shareX=TRUE) %>% layout(xaxis=list(title='Time'))

enter image description here

...