--- url: https://chartbuddy.io/embed/docs/concepts/orientation.md --- > Docs index: [llms.txt](https://chartbuddy.io/embed/docs/llms.txt) # Orientation ```js { orientation: 'vertical', // default // orientation: 'horizontal', } ``` Orientation controls which physical sides carry the **domain** (categories) vs **range** (values) axes. Chartbuddy remaps axis roles automatically when orientation changes, so you keep the same `seriesData` and only flip `orientation`. | Orientation | Domain (categories) | Primary range (values) | |---|---|---| | `vertical` | bottom | left | | `horizontal` | left | bottom | ## Horizontal clustered bar ```js { chartType: 'clusteredBar', orientation: 'horizontal', isDataTransposed: true, seriesData: [/* … */], title: { visible: true, text: 'Sources' }, subtitle: { visible: false, text: '' }, legend: { visible: false }, } ``` Give horizontal bars enough **height**: category labels sit on the left and need vertical room. Format value ticks on **`axes.bottom`** (primary range), not `left`. More detail: [Axes · Orientation & roles](https://chartbuddy.io/axes/orientation) · [Value axis](https://chartbuddy.io/embed/docs/axes/value-axis.md) · [Secondary (top)](https://chartbuddy.io/embed/docs/axes/secondary.md#horizontal-dual-axis-secondary-on-top).