Vega Lite
How Can You Customize Text and Labels Format in Vega-Lite?

How Can You Customize Text and Labels Format in Vega-Lite?

In the world of data visualization, details matter. Ever wondered how to format the text, tooltips, axis, legend, and header labels in your Vega-Lite charts? You've come to the right place! Let's dive into customizing these elements to make your charts more informative and visually appealing.

What Can You Format in Vega-Lite?

With Vega-Lite, you can personalize the format of:

  • Text marks
  • Tooltips
  • Axis labels
  • Legend labels
  • Header labels

Understanding the Basics

Every text element in Vega-Lite has properties for formatting:

  • format
  • formatType

Additionally, you can override the default formats in your Vega-Lite configurations.

Formatting Text Marks and Tooltips

Example: Formatting Numbers in Tooltips

Imagine you want to display the average horsepower for cars from different origins, and you wish to format this number to show 2 decimal places. This is how you can do it using Vega-Lite:

{
  "data": {"url": "data/cars.json"},
  "mark": "point",
  "encoding": {
    "x": {"field": "Origin", "type": "nominal"},
    "y": {
      "field": "Horsepower",
      "type": "quantitative",
      "aggregate": "average",
      "format": ".2f"
    },
    "tooltip": {
      "field": "Horsepower",
      "type": "quantitative",
      "aggregate": "average",
      "format": ".2f"
    }
  }
}

Formatting Axis, Legend, and Header Labels

Example: Formatting Quantitative Fields in Axis Labels

Suppose you have a bar chart and you wish to use exponent notation to display numbers with two significant digits:

{
  "data": {"url": "data/cars.json"},
  "mark": "bar",
  "encoding": {
    "x": {"field": "Year", "type": "ordinal"},
    "y": {
      "field": "Horsepower",
      "type": "quantitative",
      "aggregate": "average",
      "axis": {
        "format": ".2e"
      }
    }
  }
}

Example: Formatting Temporal Data in Axis Labels

Let's say you want your axis label to only show the year from a date:

{
  "data": {"url": "data/stocks.csv"},
  "mark": "line",
  "encoding": {
    "x": {
      "field": "date",
      "type": "temporal",
      "axis": {
        "format": "%Y"
      }
    },
    "y": {"field": "price", "type": "quantitative"}
  }
}

Frequently Asked Questions

Q1: How do I format dates in tooltips?

You can format dates in tooltips by specifying the format property in the tooltip channel definition. For example:

"tooltip": {
  "field": "date",
  "type": "temporal",
  "format": "%b %d, %Y"
}

Q2: Can I use custom text in axis labels?

Yes! You can add custom text to axis labels using the labelExpr property. For example:

"axis": {
  "labelExpr": "'Year ' + year(datum.value)"
}

Q3: What are some common formatting strings for numbers?

Here are a few common ones:

  • .2f for 2 decimal places
  • .2e for exponent notation with 2 significant digits
  • $.2f for currency formatting

With these tips and examples, you can now expertly format various elements in your Vega-Lite visualizations. Happy charting!