2017-01-03 2 views
0

Я пытаюсь сделать настраиваемую всплывающую подсказку в rbokeh, но когда я пытаюсь сделать это программно, оценка не-stadard мешает.rbokeh hover tooltips - NSE на пути

Из примера:

library(rbokeh) 

mtcars$model <- row.names(mtcars) 
figure() %>% 
    ly_points(disp, mpg, data = mtcars, color = cyl, 
      hover = "This <strong>@model</strong><br>has @hp horsepower!") 

Rbokeh услужливо заполняет @model и @hp с переменными при наведении курсора мыши. Однако, когда я пытаюсь сделать использование парения в виде строки символов, которые можно изменить на лету, например:

hover_text <- "This <strong>@model</strong><br>has @hp horsepower!" 
mtcars$model <- row.names(mtcars) 
figure() %>% 
    ly_points(disp, mpg, data = mtcars, color = cyl, 
      hover = hover_text) 

rbokeh не правильно заполнить переменные в подсказке.

Как я могу получить rbokeh для лечения hover_text так же, как и исходная символьная строка?


Я попробовал несколько вариаций do.call, но все они были ошибки.

ly_points_docall <- function(...) { 
    do.call(ly_points, list(..., hover = hover_text)) 
} 

figure() %>% 
    ly_points_docall(disp, mpg, data = mtcars, color = cyl, 
        hover = hover_text) 
# Error in do.call(ly_points, list(..., hover = hover_text)) : 
# object 'disp' not found 

И

ly_points_docall <- function(...) { 
    do.call(ly_points, list(..., hover = hover_text)) 
} 

figure() %>% 
    ly_points_docall(~disp, ~mpg, data = mtcars, color = ~cyl, 
        hover = hover_text) 
# Error in (function (fig, x, y = NULL, data = figure_data(fig), glyph = 21, : 
# formal argument "hover" matched by multiple actual arguments 

ответ

0

понял это, pryr::subs() и eval() были ключом.

pryr::subs(
    figure() %>% 
    ly_points("disp", "mpg", data = mtcars, color = "cyl", 
       hover = hover_text) 
) %>% 
    eval() 
Смежные вопросы