Top-K Plot with "Others"

By @manzt, adapted from https://observablehq.com/@manzt/top-k-plot-with-others-vega-lite-example.

View this example in the online editor

Vega-Lite JSON Specification

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "description": "Top-K plot with \"others\" by Trevor Manz, adapted from https://observablehq.com/@manzt/top-k-plot-with-others-vega-lite-example.",
  "title": "Top Directors by Average Worldwide Gross",
  "data": {"url": "data/movies.json"},
  "mark": "bar",
  "transform": [
    {
      "aggregate": [{"op": "mean", "field": "Worldwide Gross", "as": "aggregate_gross"}],
      "groupby": ["Director"]
    },
    {
      "window": [{"op": "row_number", "as": "rank"}],
      "sort": [{ "field": "aggregate_gross", "order": "descending" }]
    },
    {
      "calculate": "datum.rank < 10 ? datum.Director : 'All Others'", "as": "ranked_director"
    }
  ],
  "encoding": {
    "x": {
      "aggregate": "mean",
      "field": "aggregate_gross",
      "type": "quantitative",
      "title": null
    },
    "y": {
      "sort": {"op": "mean", "field": "aggregate_gross", "order": "descending"},
      "field": "ranked_director",
      "type": "ordinal",
      "title": null
    }
  }
}