Переменные оси на одном участке в R - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь использовать plotly для создания графика с двумя выпадающими кнопками (одна для оси x, одна для оси y), которая позволит мне изменять данные, масштаб, метку и т. Д. На соответствующей оси,тем самым создавая диаграмму рассеяния, которая может сравнивать любые 2 столбца данных на любой оси.Я понимаю, как сделать выпадающие кнопки:

p <- plot_ly(df, x = ~x, y= ~y1) %>%
 layout(
 xaxis = list(domain = c(0.1, 1)),
 yaxis = list(domain = c(0.1, 1)),
 updatemenus = list(
   list(
     y = 1.1,    # This is the location of the vertical axis button
     x= 0.5,
     buttons = list(
       list(method = "update",
          args = list(list("visible", list(T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)),
          label = colnames(df)[1]),
       list(method = "update",
          args = list(list("visible", list(T,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F,F)),
          label = colnames(df)[1]), # etc

Возможно ли то, что я пытаюсь сделать, и как мне поступить с обновлением данных, отправляемых на график?

1 Ответ

0 голосов
/ 26 ноября 2018

РЕДАКТИРОВАТЬ Я выяснил синтаксис для изменения данных на определенной оси, используя выпадающие кнопки, переведя эту запись из Python в R. Код выглядит следующим образом:

p <- plot_ly(df, x= df[,1], y= df[,2],
             mode= "markers", type= "scatter", 
             color= ~df[,3],) %>%
layout(
updatemenus = list(
  list(
    x= 0.46, y = 1.1,
    yanchor= "top",
    buttons = list(
      list(args = list(list(y= list(df[,1]))),
           label = colname(df[,1]), method = "restyle"),
      list(args = list(list(y= list(df[,2]))),
           label = colname(df[,2]), method = "restyle"),
    )
   ),
   list(
     x= 1.1, y = 1.1,
     yanchor= "top",
     buttons = list(
       list(args = list(list(x= list(df[,1]))),
            label = colname(df[,1]), method = "restyle"),
       list(args = list(list(x= list(df[,2]))),
            label = colname(df[,2]), method = "restyle"),
     )
    )
  )
)

annot <- list(list(text = "Vertical<br>Axis", x=-0.1, y= 1.1, xref='paper', 
                   yref='paper', showarrow=FALSE),
              list(text = "Horizontal<br>Axis", x= 0.57, y= 1.1, 
                   xref='paper', yref='paper', showarrow=FALSE))

p <- p %>%layout(
  annotations = annot)

Этот код работает, но возникают 2 новые проблемы:
1) Как я могу изменить данные И изменить метку оси?
2) Как я могу раскрасить график при помощи df [, 3] каждый раз, когдаизменения оси?

...