Javascript 运行时在折线图中显示NAN的数据值

Javascript 运行时在折线图中显示NAN的数据值,javascript,ajax,nan,linechart,Javascript,Ajax,Nan,Linechart,我正在使用折线图生成一个图形,它工作正常,但在图形中有一个问题;有一个值显示NAN。我不明白为什么会这样。我的数据完全是json格式的 以下是我的Ajax代码: 输出我的数据包含: 问题出在July字段中,该字段的总数为34,但在图表中显示为NAN 图形生成函数: 功能折线图(数据){ var salesChartCanvas=$(“#线图”).get(0.getContext(“2d”); var salesChartData={ 标签:[], 数据集:[ { 标签:“我的第二个数据集”, f

我正在使用折线图生成一个图形,它工作正常,但在图形中有一个问题;有一个值显示NAN。我不明白为什么会这样。我的数据完全是json格式的

以下是我的Ajax代码:

输出我的数据包含:

问题出在July字段中,该字段的总数为34,但在图表中显示为NAN

图形生成函数:

功能折线图(数据){
var salesChartCanvas=$(“#线图”).get(0.getContext(“2d”);
var salesChartData={
标签:[],
数据集:[
{
标签:“我的第二个数据集”,
fillColor:“rgba(210、214、222、1)”,
strokeColor:“rgba(210、214、222、1)”,
点颜色:“rgba(151187205,1)”,
pointStrokeColor:“fff”,
pointHighlightFill:“fff”,
pointHighlightStroke:“rgba(151187205,1)”,
数据:[]
}
]
};
var salesChartOptions={
scaleShowGridLines:对,
scaleGridLineColor:“rgba(0,0,0,05)”,
scaleGridLineWidth:1,
缩放水平线:对,
scaleShowVerticalLines:没错,
贝塞尔曲线:对,
Bezier曲线长度:0.4,
是的,
点半径:4,
pointDotStrokeWidth:1,
PointHit检测半径:20,
datasetStroke:对,
datasetStrokeWidth:2,
datasetFill:true,
legendTemplate:“
    ” }; //栏(salesChartData、salesChartOptions); var salesChart=新图表(salesChartCanvas).Line(salesChartData,salesChartOptions);
    对于(var i=0;i在做了大量的研究之后,我终于在这里找到了问题的解决方案,我可以发布解决方案

    Ajax代码

    $(function () {
    
            $.ajax({
                url:"/1002/workEfficencyGraph.php",
                type: "GET",
                dataType: "json",
                success: function (data) {
                    lineChart(data);
                },
                error: function (e) {
                    console.log(e.message);
                }
            });
        });
    
    图形生成函数

    function lineChart(data){
    
        var lineChartData = {
            labels : [],
            datasets : [
    
                {
                    label: "My Second dataset",
                    fillColor : "rgba(151,187,205,0.2)",
                    strokeColor : "rgba(151,187,205,1)",
                    pointColor : "rgba(151,187,205,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(151,187,205,1)",
                    data : []
                }
            ]
    
        }
           var ctx = document.getElementById("lineChart").getContext("2d");
            window.myLine = new Chart(ctx).Line(lineChartData, {
                responsive: true
            });
        for(var i=0; i<data.length; i++) {
            myLine.addData([data[i].total],data[i].month);
        }
    
    
    }
    
    功能折线图(数据){
    变量lineChartData={
    标签:[],
    数据集:[
    {
    标签:“我的第二个数据集”,
    填充颜色:“rgba(151187205,0.2)”,
    strokeColor:“rgba(151187205,1)”,
    点颜色:“rgba(151187205,1)”,
    pointStrokeColor:“fff”,
    pointHighlightFill:“fff”,
    pointHighlightStroke:“rgba(151187205,1)”,
    数据:[]
    }
    ]
    }
    var ctx=document.getElementById(“线形图”).getContext(“2d”);
    window.myLine=新图表(ctx).Line(lineChartData{
    回答:对
    });
    
    对于(var i=0;i salesChart.addData预期的参数是什么?我认为问题在于这行代码。我只是简单地将数据附加到salesChart中,如文档中所示。我在Barchart中使用了相同的技术,它也完全可以正常工作,唯一的问题是这一点。您可以发布console.log(数据)的输出吗;在for循环之后?好的,我发布控制台日志
    function lineChart(data){
        var salesChartCanvas = $("#lineChart").get(0).getContext("2d");
        var salesChartData = {
            labels: [],
            datasets: [
                {
                    label: "My Second dataset",
                    fillColor: "rgba(210, 214, 222, 1)",
                    strokeColor: "rgba(210, 214, 222, 1)",
                    pointColor: "rgba(151,187,205,1)",
                    pointStrokeColor: "#fff",
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(151,187,205,1)",
                    data: []
                }
    
            ]
        };
    
    
        var salesChartOptions = {
            scaleShowGridLines : true,
            scaleGridLineColor : "rgba(0,0,0,.05)",
            scaleGridLineWidth : 1,
            scaleShowHorizontalLines: true,
            scaleShowVerticalLines: true,
            bezierCurve : true,
            bezierCurveTension : 0.4,
            pointDot : true,
            pointDotRadius : 4,
            pointDotStrokeWidth : 1,
            pointHitDetectionRadius : 20,
            datasetStroke : true,
            datasetStrokeWidth : 2,
            datasetFill : true,
            legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\"background-color:<%=datasets[i].strokeColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>"
    
        };
        //salesChart.Bar(salesChartData, salesChartOptions);
        var salesChart = new Chart(salesChartCanvas).Line(salesChartData,salesChartOptions);
        for(var i=0; i<data.length; i++){
            console.log([data[i].total], data[i].month);
            salesChart.addData([data[i].total], data[i].month);
        }
    }
    
     <div class="box-body">
       <div class="chart">
           <canvas id="lineChart" height="250"></canvas>
       </div>
     </div>
    
    $(function () {
    
            $.ajax({
                url:"/1002/workEfficencyGraph.php",
                type: "GET",
                dataType: "json",
                success: function (data) {
                    lineChart(data);
                },
                error: function (e) {
                    console.log(e.message);
                }
            });
        });
    
    function lineChart(data){
    
        var lineChartData = {
            labels : [],
            datasets : [
    
                {
                    label: "My Second dataset",
                    fillColor : "rgba(151,187,205,0.2)",
                    strokeColor : "rgba(151,187,205,1)",
                    pointColor : "rgba(151,187,205,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(151,187,205,1)",
                    data : []
                }
            ]
    
        }
           var ctx = document.getElementById("lineChart").getContext("2d");
            window.myLine = new Chart(ctx).Line(lineChartData, {
                responsive: true
            });
        for(var i=0; i<data.length; i++) {
            myLine.addData([data[i].total],data[i].month);
        }
    
    
    }