Skip to content

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'];
}
}
}
Was this page helpful?