Создание линейного графика с использованием plot_ly (R) с двумя осями Y - PullRequest
0 голосов
/ 09 июля 2019

Я новичок в пакете plot_ly и пытаюсь создать линейный график временного ряда с двумя переменными на оси y.

В моем фрейме данных 'baro' у меня есть переменная 'DateTime' в формате POSIXct, а 'Pressure' и 'Temperature' в числовом формате.

Я основываю свой код на приведенном здесь примере: https://plot.ly/r/multiple-axes/

p <- plot_ly(baro)

add_trace(p, x = ~DateTime, y = ~Pressure, type = "scatter",
          mode = "lines", name = "Pressure")

add_trace(p, x = ~DateTime, y = ~Temperature, type = "scatter",
          mode = "lines", name = "Temperature", yaxis = "y2")

layout(p,
  title = "Pressure & Temperature", yaxis2 = ay,
  xaxis = list(title="x")
)

При этом выводится набор осей, помеченных от -1 до 6 на оси x и от -1 до 4 на оси y без данных.

1 Ответ

0 голосов
/ 23 июля 2019

Я предпочитаю использовать трубы %>%, а не приписывать объект к графику. Когда у вас есть 2 оси Y, приятно явно установить расположение каждого из них.

Это должно делать то, что вы хотите:

# Build randon data
set.seed(123)

baro = data.frame(DateTime = as.POSIXct(1:10,origin = "2019-01-01"),
                  Pressure = sample(1000:2000,10),
                  Temperature = sample(20:60,10)
                  )

# Build plot

baro %>%
  plot_ly(type = "scatter", mode = "lines") %>%
  add_trace(x = ~DateTime, y = ~Pressure, name = "Pressure")%>%
  add_trace(x = ~DateTime, y = ~Temperature, name = "Temperature", yaxis = "y2") %>%
  layout(title = "Pressure & Temperature",
         yaxis = list(title = "Pressure"),
         yaxis2 = list(title = "Temperature",
                       overlaying = "y",
                       side = "right"
                       )
         )

Вот вывод:

enter image description here

С уважением.

...