У меня есть 3 демонстрационных набора данных для визуализации в React с использованием Recharts.js.
{ x: 80, y: 50, name: "Page A" },
{ x: 14, y: 80, name: "Page B" },
{ x: 70, y: 38, name: "Page C" },
К сожалению, значения по оси x не упорядочены правильно (80 -> 14 -> 70), а следуют порядку объектов в массиве данных.
const rechart = () => {
return (
<div>
<ScatterChart width = {400} height = {400} data = {data}>
<XAxis dataKey = "x" domain = {[0, 100]} />
<YAxis dataKey = "y" domain = {[0, 100]} axisLine = {false} tick = {false} />
<Scatter data = {data}>
<LabelList dataKey = "name" position = "right" />
</Scatter>
</ScatterChart>
</div>
);
};
Что я могу сделать, чтобы отсортировать значения от 0 до 100, а не от страницы A до страницы C?
Попробуйте отсортировать свои данные, прежде чем передавать их в качестве реквизита компоненту Scatter.
data.sort((a,b) => a.x - b.x)
const rechart = () => {
const sortedData = data.sort((a,b) => a.x - b.x)
return (
<div>
<ScatterChart width = {400} height = {400} data = {data}>
<XAxis dataKey = "x" domain = {[0, 100]} />
<YAxis dataKey = "y" domain = {[0, 100]} axisLine = {false} tick = {false} />
<Scatter data = {sortedData}>
<LabelList dataKey = "name" position = "right" />
</Scatter>
</ScatterChart>
</div>
);
};