# Bar chart race (Bar example)

> WestCoast Charts 1.1.5, release, public Core release, on npm. HTML: https://westcoast-charts.com/gallery/bar/horizontal-bar-race/ · Index for agents: https://westcoast-charts.com/llms.txt

Cities re-rank month by month with a ticker.

Why it matters: dedicated barRace type: FLIP re-ranking with names that never cross, counting ticker, number countUp, reduced-motion snap; images are optional (not shown)

- Chart type: `barRace` (Bar Race)
- Collection: Bar · Bar
- Raw configuration: https://westcoast-charts.com/gallery-src/bar/horizontal-bar-race.js
- Standalone example: https://westcoast-charts.com/embed/samples/wcc/gallery/bar/horizontal-bar-race.html

## Setup

```js
import WestCoastCharts from 'west-coast-charts'
import types from 'west-coast-charts/types'

WestCoastCharts.use(types)
```

## Options

```js
const options = {
  chart: {
    height: 380,
    fontFamily: "Inter, Geist, \"IBM Plex Sans\", system-ui, sans-serif",
    type: "barRace",
    toolbar: {
      show: false
    }
  },
  series: [
    {
      name: "Active users (k)",
      data: [
        {
          x: "Lisbon",
          y: 53
        },
        {
          x: "Oslo",
          y: 56
        },
        {
          x: "Seattle",
          y: 74
        },
        {
          x: "Osaka",
          y: 68
        },
        {
          x: "Austin",
          y: 78
        },
        {
          x: "Porto",
          y: 59
        },
        {
          x: "Tallinn",
          y: 67
        },
        {
          x: "Lyon",
          y: 54
        },
        {
          x: "Bergen",
          y: 28
        },
        {
          x: "Denver",
          y: 60
        }
      ]
    }
  ],
  plotOptions: {
    barRace: {
      maxBars: 8,
      ticker: {
        text: "Jan 2026"
      },
      values: {
        formatter: (v) => v.toFixed(1) + 'k'
      }
    }
  },
  title: {
    text: "Active users by city, top 8"
  },
  theme: {
    mode: "light",
    preset: "coastal"
  }
}

const chart = new WestCoastCharts(document.querySelector('#chart'), options)
await chart.render()
```

## Verify

- Text check (Library 1.1.5): load `west-coast-charts/agent/describe` and call `chart.describe({ format: "json" })` for the actual drawn state. The live reader is on this example’s HTML page.
- Command line (Public agent tools 0.2.3, tested with Library 1.1.5; available from the versioned GitHub release and npm, https://westcoast-charts.com/docs/cli/index.md): `wcc chart export bar-horizontal-bar-race.json --out bar-horizontal-bar-race.svg --with-table` (save the options above as JSON first)
