在带有json响应的chart.js中绘制折线图

xrcwrn
<script type="text/javascript">
            $(function() {
                $.ajax({
                    type: "POST",
                    url: "BillnAmount",
                    cache: false,
                    dataType: 'json',
                    success: function(data) {
                        console.log(data);

                        var data = {
                            labels: ["January", "February", "March", "April", "May", "June", "July"],
                            datasets: [
                                {
                                    label: "My First dataset",
                                    fillColor: "rgba(220,220,220,0.2)",
                                    strokeColor: "rgba(220,220,220,1)",
                                    pointColor: "rgba(220,220,220,1)",
                                    pointStrokeColor: "#fff",
                                    pointHighlightFill: "#fff",
                                    pointHighlightStroke: "rgba(220,220,220,1)",
                                    data: [65, 59, 80, 81, 56, 55, 40]
                                },
                                {
                                    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: [28, 48, 40, 19, 86, 27, 90]
                                }
                            ]
                        };
                        var ctx = $("#myChart").get(0).getContext("2d");
                        var myNewChart = new Chart(ctx);
                        var myLineChart = new Chart(ctx).Line(data);
                    }
                });
            });
        </script>

我正在用ajax调用网址,并以json格式获取其响应。

在ajax调用中,我正在绘制折线图,Chart.js该图可以正常工作。

现在我想使用json响应数据更改图表值以上,我的json响应值是

  {"billDetails":
 [{"invoiceDate":"2014-07-24T00:00:00","totalAmount":1031.00,"totalBills":1},  
 {"invoiceDate":"2014-07-15T00:00:00","totalAmount":7281.00,"totalBills":3},
 {"invoiceDate":"2014-07-12T00:00:00","totalAmount":14841.00,"totalBills":7},
 {"invoiceDate":"2014-07-11T00:00:00","totalAmount":1294.00,"totalBills":3},
 {"invoiceDate":"2014-07-10T00:00:00","totalAmount":674.00,"totalBills":3},
 {"invoiceDate":"2014-07-09T00:00:00","totalAmount":2.00,"totalBills":1},
 {"totalAmount":114.00,"totalBills":10}]}

我应该做些什么更改,它必须显示json响应中的数据

编辑:我尝试了

var data1;
  $.each(data.billDetails, function(i, value) {
                        data1 = {
                            labels: data.billDetails[i].invoiceDate,
                            datasets: [
                                {
                                    label: "My First dataset",
                                    fillColor: "rgba(220,220,220,0.2)",
                                    strokeColor: "rgba(220,220,220,1)",
                                    pointColor: "rgba(220,220,220,1)",
                                    pointStrokeColor: "#fff",
                                    pointHighlightFill: "#fff",
                                    pointHighlightStroke: "rgba(220,220,220,1)",
                                    data: data.billDetails[i].totalBills
                                },
                                {
                                    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: data.billDetails[i].totalAmount
                                }
                            ]
                        };
                    });

在控制台上,它显示以下内容

Uncaught TypeError: Cannot read property 'x' of undefined 

我的数据格式

2014-07-24T00:00:00 1 1031 
2014-07-15T00:00:00 3 7281 
2014-07-12T00:00:00 7 14841
2014-07-11T00:00:00 3 1294
2014-07-10T00:00:00 3 674 
2014-07-09T00:00:00 11 116 

仅显示以下图像

在此处输入图片说明

凯文·桑多

您处在正确的轨道上,必须迭代json并将其转换为chart.js可以理解的结构。

您应该从一个包含所有静态信息的空结构开始:

var chartData = {
  labels: [], // currently empty will contain all the labels for the data points
  datasets: [
    {
      label: "Total Bills",
      fillColor: "rgba(220,220,220,0.2)",
      strokeColor: "rgba(220,220,220,1)",
      pointColor: "rgba(220,220,220,1)",
      pointStrokeColor: "#fff",
      pointHighlightFill: "#fff",
      pointHighlightStroke: "rgba(220,220,220,1)",
      data: [] // currently empty will contain all the data points for bills
    },
    {
      label: "Total Amount",
      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: [] // currently empty will contain all the data points for bills
    }
  ]
};

到目前为止,这不会打印您的图表,但其中包含所有必要的信息,例如线标签和颜色。

现在遍历数组:

$.each(data.billDetails, function(position, billDetail) {
  // first use the invoiceDate as a label
  if (billDetail.invoiceDate) {
    // You should probably format that
    chartData.labels.push(billDetail.invoiceDate); 
  } else {
    // your last data entry doesn't have an invoiceDate
    chartData.labels.push(''); // blank or think of something creative
  }

  // add the totalBills and totalAmount to the dataset
  chartData.datasets[0].data.push(billDetail.totalBills);
  chartData.datasets[1].data.push(billDetail.totalAmount);
});

现在,您可以让chart.js呈现chartData

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在chart.js中绘制折线图,仅在值更改时才放置点

来自分类Dev

增加chart.js中折线图的标签大小

来自分类Dev

D3js-使用d3.json从“ JSON数据”输入中绘制折线图

来自分类Dev

D3js-使用d3.json从“ JSON数据”输入中绘制折线图

来自分类Dev

Chart.js在折线图上绘制两个json数据集

来自分类Dev

Chart.js在折线图上绘制两个json数据集

来自分类Dev

d3.js如何绘制带有垂直x轴标签的折线图

来自分类Dev

在Swift中绘制带有1000多个数据点的折线图

来自分类Dev

如何在r中绘制带有打开圆圈的折线图?

来自分类Dev

绘制带有多个缺失值的Google折线图

来自分类Dev

动态更新Chart.js绘制折线图数据集数据

来自分类Dev

Microsoft Chart Control中的折线图

来自分类Dev

为R中的每个客户绘制具有不同颜色的折线图

来自分类Dev

在c#中绘制没有上下限的折线图

来自分类Dev

D3.js:使用长格式数据在多系列折线图中的现有折线上绘制点

来自分类Dev

从JSON数据绘制折线图时出错

来自分类Dev

绘制具有动态数据行数的折线图

来自分类Dev

如何绘制具有重复日期值的折线图?

来自分类Dev

绘制具有动态数据行数的折线图

来自分类Dev

具有区域范围的Chart.js折线图

来自分类Dev

带有负数的d3.js折线图

来自分类Dev

带有负数的d3.js折线图

来自分类Dev

使用d3.chart.js的d3.js中的折线图

来自分类Dev

如何创建带有锁定y轴的水平滚动Chart.js折线图?

来自分类Dev

Chart JS - x 轴上带有天数的折线图

来自分类Dev

在折线图nvd3.js中显示所有标签?

来自分类Dev

在折线图nvd3.js中显示所有标签?

来自分类Dev

d3.js中的双Y轴折线图,没有外部数据

来自分类Dev

D3.js:使用长格式数据在多系列折线图中的现有线上绘制点

Related 相关文章

  1. 1

    在chart.js中绘制折线图,仅在值更改时才放置点

  2. 2

    增加chart.js中折线图的标签大小

  3. 3

    D3js-使用d3.json从“ JSON数据”输入中绘制折线图

  4. 4

    D3js-使用d3.json从“ JSON数据”输入中绘制折线图

  5. 5

    Chart.js在折线图上绘制两个json数据集

  6. 6

    Chart.js在折线图上绘制两个json数据集

  7. 7

    d3.js如何绘制带有垂直x轴标签的折线图

  8. 8

    在Swift中绘制带有1000多个数据点的折线图

  9. 9

    如何在r中绘制带有打开圆圈的折线图?

  10. 10

    绘制带有多个缺失值的Google折线图

  11. 11

    动态更新Chart.js绘制折线图数据集数据

  12. 12

    Microsoft Chart Control中的折线图

  13. 13

    为R中的每个客户绘制具有不同颜色的折线图

  14. 14

    在c#中绘制没有上下限的折线图

  15. 15

    D3.js:使用长格式数据在多系列折线图中的现有折线上绘制点

  16. 16

    从JSON数据绘制折线图时出错

  17. 17

    绘制具有动态数据行数的折线图

  18. 18

    如何绘制具有重复日期值的折线图?

  19. 19

    绘制具有动态数据行数的折线图

  20. 20

    具有区域范围的Chart.js折线图

  21. 21

    带有负数的d3.js折线图

  22. 22

    带有负数的d3.js折线图

  23. 23

    使用d3.chart.js的d3.js中的折线图

  24. 24

    如何创建带有锁定y轴的水平滚动Chart.js折线图?

  25. 25

    Chart JS - x 轴上带有天数的折线图

  26. 26

    在折线图nvd3.js中显示所有标签?

  27. 27

    在折线图nvd3.js中显示所有标签?

  28. 28

    d3.js中的双Y轴折线图,没有外部数据

  29. 29

    D3.js:使用长格式数据在多系列折线图中的现有线上绘制点

热门标签

归档