1

各バーの頻度をツールチップに追加しようとしていますが、問題が発生しています。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)
4

1 に答える 1

4

すべての値でツールチップをすばやく有効にするには、関数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")
于 2014-06-28T20:47:45.057 に答える