2017-05-05 3 views
0

Rのggvisパッケージを使用して水平スタックバーを構築しています。ツールチップでは、絶対値と相対値の両方を(パーセンテージで)追加したいと思います。R ggvis形式のツールチップのパーセンテージを使用

次のコードは動作しますが、ツールチップは、まだ正しくフォーマットされていません。

all_values <- function(x) { 
    if(is.null(x)) return(NULL) 
    #x[,sapply(x, is.double)] <- apply(x[,sapply(x, is.double)], 1, function(x) {paste(round(100*x, 2), "%", sep="")}) 
    paste0(names(x), ": ",format(x), collapse = "<br />") 
} 

df <- data.frame(a = c('a','b','c'), v1 = c(7,2,1), v2 = c(0.7,0.2,0.1)) 
df %>% ggvis(x = ~v1, y = ~a, fill = ~v2) %>% 
      layer_rects(x2 = 0, height = band()) %>% 
      add_tooltip(all_values, "hover") %>% 
      add_tooltip(all_values, "click") 

私はそれがツールチップに割合を示してあるように、V2をフォーマットします。 値自体(0.7など)はまだfillとして使用する必要があります。

all_valuesのコメント部分を削除すると、関数の結果が私にとって完璧なものであっても、何らかの理由でホバーすると視覚的なクラッシュが発生します。

提案がありますか?

答えて

0

これは何か?

library(ggvis) 
all_values <- function(x) { 
    if(is.null(x)) return(NULL) 
    x <- paste0(x[,3]*100,"%") 
    paste0(names(x), "",format(x), collapse = "<br />") 
} 

df <- data.frame(a = c('a','b','c'), v1 = c(7,2,1), v2 = c(0.7,0.2,0.1)) 
df %>% ggvis(x = ~v1, y = ~a, fill = ~v2) %>% 
    layer_rects(x2 = 0, height = band()) %>% 
    add_tooltip(all_values, "hover") %>% 
    add_tooltip(all_values, "click") 

enter image description here

関連する問題