To mój zestaw danych wejściowych:Dodawanie danych do ggvis podpowiedzi, który jest zawarty w zbiorze danych wejściowych, ale nie bezpośrednio w VIS
> 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"
dla mojego ggvis
używam następujące zmienne firstaired.posix
i 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 ...
pomyślnie utworzony mój ggvis
z podpowiedzi zawierającą informacje rating
takiego:
> 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")
Ale faktycznie chcę tooltip zawierać więcej danych, jak zmiennej epid
, więc próbowałem:
…
add_tooltip(function(data){paste0("Rating: ", data$rating, "\n", "Epid: ", as.character(data$epid))}, "hover")
... Korzystanie as.character()
ponieważ epid
jest uporządkowanym czynnik - Ale część podpowiedzi jest pusty. (Zauważyłem także, że brak linii, którą zamierzałem zamieścić \n
, jest niewystarczający, ale to inny problem).
Wygląda na to przyczyna tego problemu jest to, że vis
obiekt utworzony przez rurociągi mój zestaw danych do ggvis
nie zawiera informacje I chcesz wyświetlić, przynajmniej dlatego zebrane przez pominie wyjściu str()
w sprawie pierwszy przykład.
EDYCJA: Rozwiązałem ten problem z liniami, więc nie ma potrzeby, aby zwracać mi uwagę na ?add_tooltip
- całkowicie o tym zapomniałem.
EDYCJA: Przyjęta odpowiedź działa dobrze, nawet jeśli nie pozwala mi umieścić dowolnych zmiennych w etykiecie narzędzi, to jest prawie to, czego potrzebuję do mojego użycia, dzięki! Oto co zrobiłem w końcu:
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")
Co się stanie, jeśli umieścić 'add_tooltip' przed' ggvis'? –
Nie działa, ponieważ 'add_tooltip' bierze" vis "jako swój pierwszy argument, a vis jest generowany przez' ggvis() '. – Jemus42
wymyśliłeś to? Klucz musi być unikalny. –