2017-05-05 70 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)仍然應該用作填充。

刪除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