#r #ggvis
#r #ggvis
Вопрос:
Я пытаюсь добавить частоту каждого столбца во всплывающую подсказку, и у меня возникают проблемы. Я безуспешно пытался использовать group_by . Всплывающая подсказка возвращает 4 для каждой всплывающей подсказки для каждой панели.
mtcars %>%
ggvis(x = ~cyl) %>%
layer_histograms(fill="sky blue"
, fillOpacity:=.7
, fillOpacity.hover:=.9) %>%
group_by(cyl) %>%
add_tooltip(function(x) length(x))
Этот метод имеет ту же проблему. Он возвращает 4 для каждого столбца…
Freq <- function(x) {
paste0("Frequency: ", length(x))
}
mtcars %>%
ggvis(x = ~cyl) %>%
layer_histograms(fill="sky blue"
, fillOpacity:=.7
, fillOpacity.hover:=.9) %>%
group_by(cyl) %>%
add_tooltip(Freq)
Ответ №1:
Чтобы просто быстро включить всплывающие подсказки со всеми значениями, вы можете создать функцию all_values
и добавить их.
all_values <- function(x) {
if(is.null(x)) return(NULL)
paste0(names(x), ": ", format(x), collapse = "<br />")
}
mtcars %>% group_by(cyl) %>%
ggvis(x = ~cyl) %>%
layer_histograms(fill="sky blue"
, fillOpacity:=.7
, fillOpacity.hover:=.9) %>%
add_tooltip(all_values, "hover")
Вы можете использовать эту информацию, чтобы собрать воедино функцию для того, что вы на самом деле хотите показать. В этом случае просто верхнее значение фрагмента столбчатой диаграммы с накоплением.
mtcars %>% group_by(cyl) %>%
ggvis(x = ~cyl) %>%
layer_histograms(fill="sky blue"
, fillOpacity:=.7
, fillOpacity.hover:=.9) %>%
add_tooltip(function(df) (df$stack_upr_),"hover")