Line Chart Axis Interval
Demonstrates different axis interval settings: preserveStart, preserveEnd, preserveStartEnd, equidistantPreserveStart, and a numeric interval. The charts are narrow with many data points to demonstrate the difference. Look at XAxis ticks and gaps.
import { Line, XAxis, YAxis, CartesianGrid, AxisInterval, createHorizontalChart, Tooltip, Label } from 'recharts';
import { generateMockData, MockDataType, RechartsDevtools } from '@recharts/devtools';
const data: Array<MockDataType> = generateMockData(100, 22813);
const Typed = createHorizontalChart<MockDataType, string, number>()({ XAxis, YAxis, Tooltip, Line });
const MyChart = (props: { interval: AxisInterval }) => (
<Typed.LineChart
style={{ width: '100%', maxWidth: '700px', maxHeight: '70vh', aspectRatio: 1.618 }}
responsive
data={data}
margin={{ left: 0, right: 0, top: 10 }}
>
<CartesianGrid />
<Typed.XAxis dataKey="label" interval={props.interval} />
<Typed.YAxis interval={props.interval} width="auto" />
<Typed.Line type="monotone" dataKey="x" activeDot={{ r: 8 }} />
<Typed.Line type="monotone" dataKey="y" />
<Label position="insideBottom">{`interval: ${props.interval}`}</Label>
<RechartsDevtools />
</Typed.LineChart>
);
const LineChartAxisInterval = () => {
return (
<div style={{ width: '100%', maxWidth: '500px' }}>
<MyChart interval="preserveStart" />
<MyChart interval="preserveEnd" />
<MyChart interval="preserveStartEnd" />
<MyChart interval="equidistantPreserveStart" />
<MyChart interval={1} />
</div>
);
};
export default LineChartAxisInterval;