@Nik_1011

Как сделать график chart.js на 7 дней со всеми изменениями за каждый день?

Здравствуйте.

Делаю график подобный этому. Вопрос в том, что если я подставляю данные с датами из массива API, то получается следующий результат.
63fc36eaaad0f052648748.jpeg

Если фильтрую все одинаковые значения дат,как в примере ниже с uniq, то получается только 7 точек на графике, что логично.
63fc3868595b9144817177.png

Как сделать так, чтобы было как на том примере с coinstats.app(7 дат и множество точек с изменениями)?

Вот код:
const HistoryChart = () => {
  const params = useParams();
  const [chartData, setChartData] = React.useState([]);

  const coinChartData = chartData.prices?.map((value) => ({ x: value[0], y: value[1].toFixed(2) }));
  const labelName = params.coinId[0].toUpperCase() + params.coinId.slice(1);
  const url = `${process.env.REACT_APP_API_COINS_URL}/${params.coinId}/market_chart?vs_currency=usd&days=7`;

  React.useEffect(() => {
    axios
      .get(url)
      .then((response) => {
        setChartData(response.data);
      })
      .catch((error) => {
        console.log(error);
      });
  }, []);

  const uniq = [...new Set(coinChartData?.map((value) => moment(value.x).format('MMMDD')))];

const options = {
    responsive: true,
  };

  const data = {
    labels: uniq,
    datasets: [
      {
        fill: true,
        label: labelName,
        data: coinChartData?.map((value) => value.y),
        borderColor: '#ff9332',
      },
    ],
  };

  return (
    <>
      <Line options={options} data={data} />
    </>
  );
};

export default HistoryChart;
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы