微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 chartjs 中呈现多个图表?

如何解决如何在 chartjs 中呈现多个图表?

这些是我必须在 react 中使用 chartjs 渲染的数据。我制作了一个用于重新绘制图表的自定义组件,它可以正常用于单线图,而不能仅在此处渲染多线图。

这是我的 Chartjs 自定义组件

import React,{ useRef,useEffect } from "react";

import Chart from "chart.js";

const ChartComponent = ({ data,label,min,max }) => {
    const canvasRef = useRef(null);

    useEffect(() => {
        const canvasObj = canvasRef.current;
        const context = canvasObj.getContext("2d");

        new Chart(context,{
            type: "line",data: {
                datasets: [
                    {
                        label: label,backgroundColor: "transparent",data: data,},],options: {
                scales: {
                    xAxes: [
                        {
                            type: "time",distribution: "linear",time: {
                                unit: "month",displayFormats: {
                                    quarter: "YYYY mm dd",yAxes: [
                        {
                            ticks: {
                                suggestedMax: max,suggestedMin: min,});
    },[data,max]);

    return <canvas ref={canvasRef}> </canvas>;
};

export default ChartComponent;

这些是我想在图表上呈现的数据,每个数组都必须是图表上的线。 “敢”数组将成为我的 xAxes,其他列将成为我的 yAxes

const date = [
1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,]

const level = [
1275.77,1274.73,1273.83,1273.41,1273.65,1273.5,1273.28,1272.83,12732.83,1271.6,1271.36,1271.01,1270.67,1270.4,1270.15,1270.08,1270.54,1270.32,1270.27,1271.3,1271.27,]

const area = [
4753.37,5039.93,5391.36,5723.07,5724.38,5643.3,5498.31,4978.31,4544.5,4215.19,4070.4,4148.57,4099.62,4028.18,3794.98,3436.8,3029.65,2869.53,2583.24,2196.58,1880.42,1525.59,1404.46,2047.49,1783.47,1722.87,2828.37,2807.79,]

const volume = [
21010,22150,26910,30710,30770,29010,27990,21500,16540,12580,10840,11830,11210,10310,8550,6120,4320,3610,2640,1840,1290,860,750,1560,1140,1050,3430,3350,]

解决方法

您正在寻找的称为渲染多个数据集,为此您应该将 date 放在 labels 数组中,将其他数据数组放在 datasets 数组中,每个数组都放在单独的目的。 我尝试使用您的数据实现一个示例是沙箱 https://codesandbox.io/s/react-chartjs-forked-flj74 您可以根据需要重新格式化日期

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。