这是我的输入数据集:
> names(breakingbad.episodes)
[1] "season" "episode" "epnum" "epid" "title"
[6] "url.trakt" "firstaired.utc" "id.tvdb" "rating" "votes"
[11] "loved" "hated" "overview" "firstaired.posix" "year"
[16] "zrating.season" "src"
对于我的ggvis
,我正在使用以下变量firstaired.posix
和rating
:
> str(breakingbad.episodes[c("firstaired.posix", "rating")])
'data.frame': 62 obs. of 2 variables:
$ firstaired.posix: POSIXct, format: "2008-01-21 02:00:00" "2008-01-28 02:00:00" "2008-02- 11 02:00:00" ...
$ rating : num 87 85 84 84 83 90 87 85 88 83 ...
我成功地创建了一个包含评级信息的tooltip rating
,示例如下:
> breakingbad.episodes %>%
ggvis(x = ~firstaired.posix,
y = ~rating,
fill = ~season) %>%
layer_points() %>%
add_axis("x", title = "Airdate") %>%
add_axis("y", title = "Rating") %>%
add_legend("fill", title = "Season") %>%
add_tooltip(function(data){paste0("Rating: ", data$rating)}, "hover")
但是我实际上希望工具提示包含更多的数据,例如epid
变量,因此我尝试:
…
add_tooltip(function(data){paste0("Rating: ", data$rating, "\n", "Epid: ", as.character(data$epid))}, "hover")
使用as.character()
,因为epid
是一个有序的因子——但提示框的一部分是空的。(我也注意到我打算插入的换行符\n
不存在,但这是另一个问题)。
看起来这个问题的原因是,通过将我的数据集传递到ggvis
中创建的vis
对象不包含我想要显示的信息,至少这就是我通过查看第一个示例上str()
输出时收集到的信息。
编辑:我解决了那个换行符的问题,所以不需要指向?add_tooltip
——完全忘记了那个。
编辑:虽然它不允许我在提示框中放置任意变量,但被接受的答案很好,对于我的用例来说基本上就是我需要的,谢谢!这是我最终的做法:
breakingbad.episodes <- transform(breakingbad.episodes, id = paste0(epid, " - ", title))
breakingbad.episodes %>%
ggvis(x = ~firstaired.posix,
y = ~rating,
fill = ~season,
key := ~id) %>%
layer_points() %>%
add_axis("x", title = "Airdate") %>%
add_axis("y", title = "Rating") %>%
add_legend("fill", title = "Season") %>%
add_tooltip(all_values, "click")
ggvis
之前放置add_tooltip
会发生什么? - Scott Ritchieadd_tooltip
接受一个vis
作为它的第一个参数,而该vis
是由ggvis()
生成的。 - Jemus42