ggplotly - добавление двух разных текстов наведения к двум объектам geom_line - PullRequest
0 голосов
/ 15 октября 2019

Предположим, что следующие два фрейма данных я хочу построить как geom_line с ggplot2:

require(ggplot2)
require(plotly)

mydf1 <- data.frame(X1 = 1:24, Y1 = sample(5:15, 24, replace = T))
mydf2 <- data.frame(X2 = seq(2,24,2), Y2 = sample(5:15,12, replace = T))
myplot <- ggplot() + geom_line(data = mydf1, aes(x = X1, y = Y1), color = 'black') + 
  geom_line(data = mydf2, aes(x = X2, y = Y2), color = 'red')
print(ggplotly(myplot))

Теперь я хочу добавить два разных всплывающих текста к соответствующим строкам. Я знаю, как настроить и определить, что показывает информационное поле ggplotly при использовании одного объекта. Как я могу определить это для двух объектов, которые зависят от разных фреймов данных и которые должны иметь разный текст, отображаемый в информационном окне? Следовательно, я хочу определить, что именно показывает текст при наведении. Я пробовал что-то вроде:

myplot <- ggplot() + geom_line(data = mydf1, aes(x = X1, y = Y1, group = 1, text = 
                                                   paste0('Var1: ' = mydf1$X1, "<br>", "Var2: ", mydf1$Y1)), color = 'black') + 
  geom_line(data = mydf2, aes(x = X2, y = Y2), group = 1, text = 
              paste0('Var3: ' = mydf2$X2, "<br>", "Var4: ", mydf2$Y2), color = 'red')
print(ggplotly(myplot, tooltip = 'text'))

Однако я просто получаю предупреждение Ignoring unknown aesthetics: text. Как определить два всплывающих текста для двух строк? В конечном итоге мне нужно добавить 3 разных объекта geom_line, но решение этого вопроса для двух объектов также должно решить проблему для трех объектов.

...