代码之家  ›  专栏  ›  技术社区  ›  sf8193

图表js-绘制带有多个标签的条形图

  •  7
  • sf8193  · 技术社区  · 8 年前

    我试着用图表画一个条形图。js使用多个标签,以便我可以操作它们。我用折线图做了这件事,并尝试扩展我在那里做的事情,但运气不好。我收到了这个错误。是什么原因造成的?

    “未捕获类型错误:在非对象上调用Object.defineProperty”。

    问题在数据中的某个地方:{},因为当我将数据作为一个简单的2索引数组时,它工作得很好。

    编辑:单步通过数据集时=null;

            var com_passed = rows[rows.length-2]["# Common Passed"];
            var com_failed = rows[rows.length-2]["# Common Failed"];
            var ctx = document.getElementById("common_chart");
            ctx.height = 50;
    
            var historicalChart = new Chart(ctx, {
                type: 'bar',
                data: {
                    labels: ["Passed", "Failed"],
                    datasets: [
                    { 
                        data: com_passed,
                        label: "Passed",
                        fillColor: "red"
                    },
                    { 
                        data: com_failed,
                        label: "Failed",
                        fillColor: "green"                      
                    }
                        ]
                },
                    options: {
                        scales: {
                            yAxes: [{
                                ticks: {
                                beginAtZero:true,
                                responsive: false,
                                maintainAspectRatio: true
                                }
                            }]
                        }
                    }
            });
    
    1 回复  |  直到 8 年前
        1
  •  8
  •   sf8193    8 年前

    对于那些有类似问题的人。我需要将数据com_作为数组传递,而不是像这样的整数。

        var com_passed = rows[rows.length-2]["# Common Passed"];
        var com_failed = rows[rows.length-2]["# Common Failed"];
        var ctx = document.getElementById("common_chart");
        ctx.height = 50;
    
        var historicalChart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: ["Passed", "Failed"],
                datasets: [
                { 
                    data: [com_passed],
                    label: "Passed",
                    fillColor: "red"
                },
                { 
                    data: [com_failed],
                    label: "Failed",
                    fillColor: "green"                      
                }
                    ]
            },
                options: {
                    scales: {
                        yAxes: [{
                            ticks: {
                            beginAtZero:true,
                            responsive: false,
                            maintainAspectRatio: true
                            }
                        }]
                    }
                }
        });
    
    推荐文章