Axis
Linear axis components for cartesian charts. Configurable tick formatting, label rotation, positioning, and axis line styling.
Import
import {
LinearXAxis,
LinearXAxisTickSeries,
LinearXAxisTickLabel,
LinearXAxisTickLine,
LinearYAxis,
LinearYAxisTickSeries,
LinearYAxisTickLabel,
LinearYAxisTickLine,
LinearAxisLine
} from 'reaviz';
LinearXAxis / LinearYAxis Props
| Prop | Type | Default (X) | Default (Y) | Description |
|---|
type | 'value' | 'time' | 'category' | 'duration' | 'value' | 'value' | Scale type |
position | 'start' | 'end' | 'center' | 'end' | 'start' | Axis placement |
orientation | 'horizontal' | 'vertical' | 'horizontal' | 'vertical' | Axis direction |
scaled | boolean | false | false | Scale to data extent |
roundDomains | boolean | false | false | Round domain values |
domain | ChartDataTypes[] | — | — | Custom domain |
tickSeries | ReactElement | <LinearXAxisTickSeries /> | <LinearYAxisTickSeries /> | Tick series component |
axisLine | ReactElement | null | <LinearAxisLine /> | <LinearAxisLine /> | Axis line (null to hide) |
visibility | 'visible' | 'hidden' | — | — | Axis visibility |
scale | any | — | — | Custom D3 scale |
Tick Series Props
| Prop | Type | Default | Description |
|---|
tickSize | number | X: 75, Y: 30 | Spacing between ticks |
interval | number | TimeInterval | — | Custom tick interval |
ellipsisLength | number | 18 | Max label characters before ellipsis |
label | ReactElement | null | <LinearAxisTickLabel /> | Tick label (null to hide) |
line | ReactElement | null | <LinearAxisTickLine /> | Tick line (null to hide) |
Tick Label Props
| Prop | Type | Default | Description |
|---|
format | (value) => any | — | Custom label formatter |
formatTooltip | (value) => any | — | Tooltip format for truncated labels |
rotation | boolean | number | X: true, Y: false | Auto-rotate or fixed angle |
padding | number | { fromAxis, alongAxis } | 5 | Label padding |
fill | string | '#8F979F' | Text color |
fontSize | number | 11 | Font size |
fontFamily | string | 'sans-serif' | Font family |
align | 'start' | 'end' | 'center' | 'inside' | 'outside' | 'center' | Label alignment |
position | 'start' | 'end' | 'center' | X: 'end', Y: 'start' | Label position |
textAnchor | 'start' | 'end' | 'middle' | — | SVG text anchor |
className | string | — | CSS class |
onClick | (event, data) => void | — | Label click handler |
Tick Line Props
| Prop | Type | Default | Description |
|---|
size | number | 5 | Tick line length |
strokeColor | string | '#8F979F' | Line color |
strokeWidth | number | 1 | Line thickness |
position | 'start' | 'end' | 'center' | X: 'end', Y: 'start' | Line position |
Axis Line Props
| Prop | Type | Default | Description |
|---|
strokeColor | string | '#8F979F' | Line color |
strokeWidth | number | 1 | Line thickness |
strokeGradient | ReactElement<GradientProps> | null | — | Gradient for axis line |
Custom Tick Formatting
import { LinearYAxis, LinearYAxisTickSeries, LinearYAxisTickLabel } from 'reaviz';
<AreaChart
data={data}
yAxis={
<LinearYAxis
type="value"
tickSeries={
<LinearYAxisTickSeries
label={
<LinearYAxisTickLabel
format={(v) => `$${v.toLocaleString()}`}
/>
}
/>
}
/>
}
/>
Hide Axis Labels (Keep Line)
<LinearXAxis
type="time"
tickSeries={<LinearXAxisTickSeries label={null} />}
/>
Hide Tick Lines (Keep Labels)
<LinearYAxis
type="value"
tickSeries={<LinearYAxisTickSeries line={null} />}
/>
Hide Entire Axis
<AreaChart
data={data}
xAxis={<LinearXAxis visibility="hidden" />}
/>
Remove Axis Line
<LinearYAxis type="value" axisLine={null} />
Fixed Label Rotation
<LinearXAxisTickLabel rotation={45} />
Category Axis
<LinearXAxis type="category" />
Time Axis with Custom Interval
import { timeMonth } from 'd3-time';
<LinearXAxis
type="time"
tickSeries={<LinearXAxisTickSeries interval={timeMonth.every(3)} />}
/>