Я работаю с Recharts, я пытаюсь сделать простой «Линейный график» для платежных операций в течение всего года.
Итак, вот что я сделал до сих пор
export const BankTransactionsChart: React.FC<Props> = ({ chartHeight = 400 }) => {
const data = [
{ key: 'Jan', date: '1-Jan-2019', amount: '12' },
{ key: 'Feb', date: '1-Feb-2019', amount: '56' },
{ key: 'Feb', date: '5-Feb-2019', amount: '76' },
{ key: 'Mar', date: '1-Mar-2019', amount: '-112' },
{ key: 'Apr', date: '1-Apr-2019', amount: '-40' },
{ key: 'May', date: '1-May-2019', amount: '30' },
{ key: 'Jun', date: '1-Jun-2019', amount: '50' },
{ key: 'Jul', date: '1-Jul-2019', amount: '60' },
{ key: 'Aug', date: '1-Aug-2019', amount: '70' },
{ key: 'Sep', date: '1-Sep-2019', amount: '50' },
{ key: 'Oct', date: '1-Oct-2019', amount: '20' },
{ key: 'Nov', date: '1-Nov-2019', amount: '10' },
{ key: 'Dec', date: '1-Dec-2019', amount: '0' }
];
const customizeTick = (props: any) => {
const { x, y, payload } = props;
return (
<text x={x - 10} y={y + 15} textAnchor="start" fill="#666">
{payload.value}
</text>
);
};
return (
<ResponsiveContainer className="bank-transactions-chart-container" width="95%" height={chartHeight}>
<LineChart className="bank-transactions-chart" data={data} margin={{ top: 5, right: 30, left: 20, bottom: 5 }}>
<XAxis dataKey="date" allowDataOverflow tick={(props: any) => customizeTick(props)} />
<YAxis />
<CartesianGrid strokeDasharray="3 3" />
<Tooltip />
<Legend verticalAlign="top" height={36} />
<Line type="monotone" dataKey="amount" stroke="#82ca9d" name="Amount" />
</LineChart>
</ResponsiveContainer>
);
};
Это выводит изображение ниже, ![Graph output](https://i.stack.imgur.com/I5j7U.png)
, если вы можете видеть в массиве данных в коде у меня две транзакции за февраль, но на графике выше в xось показывает только метку для 5 февраля 2019 года.
Я пытаюсь поместить 12 месяцев независимо от даты в массиве данных и отображать точки в соответствии с их соответствующими месяцами.
Это в функции галочки?
Пожалуйста, помогите мне, спасибо заранее.