js类型错误

Chartist.js Type Errors

本文关键字:错误 类型 js      更新时间:2023-09-26

我正在使用图表来跟踪网站的一些指标,并在绘图时遇到困难。我看到的主要错误如下

TypeError: a.series.map is not a function
TypeError: d.normalized[e].forEach is not a function

第一个错误发生在第8:3570行,这可能没有帮助。第二次发生在8:27 . 311,这也可能没有帮助,在chartist.min.js插件中,这里是一个到chartist min和chartist full的链接,下面的代码导致这些错误。

玉片段

body
   .circle-box
        block circle-box-content
            body
                h3.fine
                    span.small Percentage of Creators Involved in an Approved Video
                hr.dfw
                .ct-chart.metric.pciav(data-metrics="#{JSON.stringify(data.pciav.metrics)}" data-labels="#{JSON.stringify(data.pciav.labels)}")
                hr.dfw
                h3.fine
                    span.small Percentage of Creators Who Have Sent an Invite
                hr.dfw
                .ct-chart.metric.pcsi(data-metrics="#{JSON.stringify(data.pcsi.metrics)}" data-labels="#{JSON.stringify(data.pcsi.labels)}")
                hr.dfw
                h3.fine
                    span.small Percentage of Creators Who Have Uploaded a Video
                hr.dfw
                .ct-chart.metric.pcicv(data-metrics="#{JSON.stringify(data.pcicv.metrics)}" data-labels="#{JSON.stringify(data.pcicv.labels)}")
h3.fine 
span.bold Number of Creators Accounts Created  
br
span.small Past 30 Days
hr.dfw.chart
.ct-chart.metric.ncac(data-metrics="#{JSON.stringify(data.ncac.metrics)}" data-labels="#{JSON.stringify(data.ncac.labels)}")
br
br
h3.fine 
    span.bold Total Videos Uploaded  
    br
    span.small Past 30 Days
hr.dfw.chart
.ct-chart.metric.tvu(data-metrics="#{JSON.stringify(data.tvu.metrics)}" data-labels="#{JSON.stringify(data.tvu.labels)}")
br
br
h3.fine 
    span.bold Percentage of Approved Videos  
    br
    span.small Past 30 Days
hr.dfw.chart
.ct-chart.metric.pav(data-metrics="#{JSON.stringify(data.pav.metrics)}" data-labels="#{JSON.stringify(data.pav.labels)}")
h3.fine 
    span.bold Average Number of Credits in Videos  
    br
    span.small Past 30 days
hr.dfw
.ct-chart.metric.ancv(data-metrics="#{JSON.stringify(data.ancv.metrics)}" data-labels="#{JSON.stringify(data.ancv.labels)}")

Javascript片段

$(document).ready(function(){
...
var circleClass = ['.pciav', '.pcsi', '.pcicv'];
for (circle of circleClass) {
    new Chartist.Pie('.ct-chart.metric'+circle, {
        labels : $('.ct-chart.metric'+circle).data('labels'),
        series : $('.ct-chart.metric'+circle).data('metrics')
    });
}
...
var metricBarCharts = ['.ncac', '.tvu'];
for(barChart of metricBarCharts){
    new Chartist.Bar('.ct-chart.metric'+barChart, {
        labels: $('.ct-chart.metric'+barChart).data('labels'),
        series: $('.ct-chart.metric'+barChart).data('metrics')      
    });
}
...
var metricLineCharts = ['.pav', '.ancv'];
for(lineChart of metricLineCharts){
    new Chartist.Line('.ct-chart.metric'+lineChart, {
        labels: $('.ct-chart.metric'+lineChart).data('labels'),
        series: $('.ct-chart.metric'+lineChart).data('metrics')     
    });
}
}

饼状图的标准输入:

 series: 12
 labels: 1

折线图/条形图标签/系列组合的标准输入:

 series = [91,91,91,91,91,93,93,93,93,95,95,96,97,98,98,98,100,101,101,101,101,101,101,102,102,102,102,102,102,102,103]
 labels = ['Jul 19','Jul 20','Jul 21','Jul 22','Jul 23','Jul 24','Jul 25','Jul 26','Jul 27','Jul 28','Jul 29','Jul 30','Jul 31','Aug 01','Aug 02','Aug 03','Aug 04','Aug 05','Aug 06','Aug 07','Aug 08','Aug 09','Aug 10','Aug 11','Aug 12','Aug 13','Aug 14','Aug 15','Aug 16','Aug 17','Aug 18']

如果有我可以提供的额外信息,请让我知道。我试着把内容减少到我认为必要的范围内。

问题的根源是在柱状图和折线图中输入的级数。Chartist将输入作为嵌套数组,以允许绘制多个序列。所以即使只有一个序列被绘制,你也需要有一个嵌套数组。因此,生成的系列/标签组合将显示如下:

系列/标签:

series = [[91,91,91,91,91,93,93,93,93,95,95,96,97,98,98,98,100,101,101,101,101,101,101,102,102,102,102,102,102,102,103]]
labels = ['Jul 19','Jul 20','Jul 21','Jul 22','Jul 23','Jul 24','Jul 25','Jul 26','Jul 27','Jul 28','Jul 29','Jul 30','Jul 31','Aug 01','Aug 02','Aug 03','Aug 04','Aug 05','Aug 06','Aug 07','Aug 08','Aug 09','Aug 10','Aug 11','Aug 12','Aug 13','Aug 14','Aug 15','Aug 16','Aug 17','Aug 18']
相关文章: