Formatting
The Formatting API allows formatters to be bound in two ways, either implicitly from the data field or explicitly by referencing a formatter in a component.
Note: Whether formatting is applied or not is up to each component.
Using the built in formatter
picasso comes bundled with the d3-format and
d3-time-format module. To use them in a
component simple create a new formatter object in the chart settings
and
reference the formatter in the component definition:
settings: {
formatters: {
myFormatter: {
formatter: 'd3'
type: 'number', // number or time
format: '0.1%'
},
anotherFormatter: {
type: 'd3-number', // This declaration is equal to the one above
format: '0.1%'
}
},
components: [
{
type: 'some component',
formatter: 'myFormatter'
}
]
}
Register a new formatter
Create and register a new formatter module. The module must be a function that takes a single argument and return another function, the returned function must also take a single argument and return a formatted value.
function formatter(format = '$') {
return (value) => `${value}${format}`;
}
picasso.formatter('appendToken', formatter);
it’s then available for consumption in the chart.
picasso.chart({
settings: {
formatters: {
myFormatter: {
type: 'appendToken', // Reference the new formatter module
format: '$$$' // Input parameter to formatter function
}
},
components: [
{
type: 'axis',
formatter: 'myFormatter',
...
}
]
}
})
Creating a formatter from data
The following configuration uses the formatter defined on the Sales field
instance.
{
myFormatter: {
data: {
fields: ['Sales'];
}
}
}