In Vega-Lite, a tooltip is an encoding to which variables are attached.
The Altair Python package offers us a shortcut to specify the tooltip encoding, by supplying the names of the variables we wish to appear in the tooltip. Altair and Vega-Lite apply some default behaviors.
library("altair")
vega_data <- import_vega_data()
chart <-
alt$Chart(vega_data$cars())$
mark_point()$
encode(
x = "Horsepower:Q",
y = "Miles_per_Gallon:Q",
color = "Origin:N",
tooltip = c("Name", "Horsepower", "Miles_per_Gallon", "Origin")
)
chart
You can use the alt$Tooltip()
method to achieve the same
outcome:
chart_new <-
chart$
encode(
tooltip =
list(
alt$Tooltip(field = "Name", type = "nominal"),
alt$Tooltip(field = "Horsepower", type = "quantitative"),
alt$Tooltip(field = "Miles_per_Gallon", type = "quantitative"),
alt$Tooltip(field = "Origin", type = "nominal")
)
)
chart_new
Although it is more verbose than the shorthand form, it does allow you to be more expressive:
chart_new <-
chart$
encode(
tooltip =
list(
alt$Tooltip(field = "Name", type = "nominal"),
alt$Tooltip(
field = "Year",
title = "Year",
type = "temporal",
timeUnit = "year"
),
alt$Tooltip(field = "Horsepower", type = "quantitative"),
alt$Tooltip(
field = "Miles_per_Gallon",
format = ".2f",
title = "Gas Mileage (mpg)",
type = "quantitative"
),
alt$Tooltip(field = "Origin", type = "nominal")
)
)
chart_new
If there is no aggregation or time-unit specified, Vega-Lite will use
the variable-name as the title for the field. Otherwise, Vega-Lite will
modify the variable-name to indicate the time-unit or the aggregation.
You can use the title
option to override the default that
Vega-Lite will propose.
Also, you can specify the format of
the values using the format
option. For quantitative
variables, d3-format is
used; for temporal variables, d3-time-format is
used.