我的数据看起来像这样:
df = data.frame(name=c("A1", "A2"),
x = c(2,4),
y = c(2,5),
sector = c("blue", "red"))
我正在尝试使用ggvis创建图表,但我无法使工具提示工作。
library(ggvis)
df %>%
ggvis(~x, ~y, size := 100, opacity := 0.4) %>%
layer_points(fill = ~sector) %>%
add_tooltip(function(df) df$name)
当我悬停鼠标时,df$name
没有出现。我做错了什么?
谢谢!
答案 0 :(得分:1)
add_tooltip的帮助文件有一个线索:
从客户端发送到服务器的数据仅包含数据列 在情节中使用的。如果您想获取其他数据列, 你应该使用一个键来排列一行中的项目 在数据中。
我的修复程序会调整该帮助文件中的示例。
library(ggvis)
df = data.frame(name=c("A1", "A2"),
x = c(2,4),
y = c(2,5),
sector = c("blue", "red"))
# Add a unique id column
df$id <- 1:nrow(df)
# Define a tooltip function, which grabs the data from the original df, not the plot
tt <- function(x) {
if(is.null(x)) return(NULL)
# match the id from the plot to that in the original df
row <- df[df$id == x$id, ]
return(row$name)
}
# in the definition of the plot we include a key, mapped to our id variable
df %>%
ggvis(~x, ~y, key := ~id, size := 100, opacity := 0.4) %>%
layer_points(fill = ~sector) %>%
add_tooltip(tt, "hover")