Tooltip
Tooltip plugin allows to explore the data behind visual element. For example, each point on a scatter plot corresponds to a row of data.
By default the plugin displays all properties from the data row.
Here is a code to apply plugin:
{
type: 'scatterplot',
...
plugins: [
tauCharts.api.plugins.get('tooltip')()
]
}
Tooltip settings
There are some settings to customize a tooltip behavior.
fields
By default the plugin displays all properties from the data row.
The fields property allows to specify which properties from a row to show on a tooltip.
{
type: 'scatterplot',
x: 'weight',
y: 'height',
color: 'gender',
data: [
{weight: 65, height: 170, gender: 'male', age: 25, name: 'Konstantin'},
...
{weight: 50, height: 160, gender: 'female', age: 18, name: 'Ann'}
],
plugins: [
tauCharts.api.plugins.get('tooltip')({
// will see only name and age on tooltip
fields: ['name', 'age']
})
]
}
formatters
By default the plugin formats displayed properties according to a chart guide or leaves them as is.
The formatters property allows to rename displayed property name and specify format for property value.
It is a hash object where key is a name of original property and value is a {label, format} object:
- The label (string) allows to rename default property name
- The format (function or d3 format string) allows to specify formatter for property value.
{
type: 'scatterplot',
x: 'weight',
y: 'height',
color: 'gender',
guide: {
x: {label: "Person Weight"},
y: {label: "Bla bla Height"}
},
data: [
{weight: 65, height: 170, gender: 'male', age: 25, name: 'Konstantin'},
...
{weight: 50, height: 160, gender: 'female', age: 18, name: 'Ann'}
],
plugins: [
tauCharts.api.plugins.get('tooltip')({
fields: ['weight', 'age', 'height', 'name'],
// will see only name and age on tooltip
formatters: {
// weight will be displayed as // Person Weight: 50
age: {label: "Person Age", format: "03d"}, // Person Age : 018
height: {
label: "Person Height",
format: function (n) {
return (n + " cm"); // Person Height: 160 cm
}
},
// (!) short notation
name: function (str) {
return str.toUpperCase(); // name : ANN
}
}
})
]
}
Once you don't want to change displayed property name there is a short notation. Instead of the a {label / format} object - specify value formatter directly.