【问题标题】:AMcharts data population from JSON来自 JSON 的 AMcharts 数据填充
【发布时间】:2016-04-22 10:29:26
【问题描述】:

您好,我有一个正在呈现的图表,并且正在显示键以及列标题。

我的问题是我无法从我传递的值中生成实际的条形图。

我的 php 代码很好,我在返回数据时使用了函数 json_encode。这是传递给图表代码的返回数据:

[{"gid":"NickShare","Users":1},
{"gid":"admin","Users":2},
{"gid":"sharedTest","Users":2}]

这是我的图表 JQuery 代码:

  function supportsSVG() {
        return !!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', "svg").createSVGRect;
    }
var token = $('#_token').val();
$.ajax({
    url: 'getShares',
    type: 'post',
    //  dataType:'json',
    data: {
        _token: token,

    },
    success: function (data, textStatus, jQxhr) {

        var DBData = jQuery.parseJSON(data);
        UserGroupsBar = new AmCharts.AmSerialChart();
       // var Data = [{}];

        UserGroupsBar.dataProvider = DBData;
        UserGroupsBar.startDuration = 1;
        UserGroupsBar.categoryField = "gid";

        $.each(DBData, function (i, item) {
          //  alert(item['Users']);
            if (item['Users'] > 0) {

               // Data[0][item['gid'] = item['Users']];
                var UserGroupGraph = new AmCharts.AmGraph();
                UserGroupGraph.id = item['gid'];
                UserGroupGraph.valueField = item['Users'];
                UserGroupGraph.title = item['gid'];
                UserGroupGraph.type = "column";
                UserGroupGraph.lineAlpha = 0;
                UserGroupGraph.fillAlphas = 1;
                UserGroupGraph.balloonText = "[[title]]: [[value]]";
                UserGroupsBar.addGraph(UserGroupGraph);
            }
        });

        UserGroupsBar.write("BarChart");

        var GroupValueAxis = new AmCharts.ValueAxis();
        GroupValueAxis.axisColor = "#DADADA";
        GroupValueAxis.gridAlpha = 0.1;
        GroupValueAxis.integersOnly = true;
        UserGroupsBar.addValueAxis(GroupValueAxis);
        UserGroupsBar.outlineColor = "#FFFFFF";
        UserGroupsBar.outlineAlpha = 0.2;
        UserGroupsBar.outlineThickness = 2;
        UserGroupsBar.startDuration = supportsSVG() ? 1 : 0;
        UserGroupsBar.depth3D = supportsSVG() ? 20 : 0;
        UserGroupsBar.angle = supportsSVG() ? 30 : 0;
        //Root Causes Legend
        GroupLegend = new AmCharts.AmLegend();
        UserGroupsBar.addLegend(GroupLegend, "Legend");
        GroupLegend.valueText = "";
        GroupLegend.align = "center";
        GroupLegend.position = "absolute";
        GroupLegend.marginTop = 30;
        GroupLegend.markerType = "circle";
        GroupLegend.labelWidth = 180;
        GroupLegend.fontSize = 10;
        GroupLegend.verticalGap = 20;
        // WRITE
        UserGroupsBar.write("BarChart");
    }


});

现在似乎真的很接近工作了任何指导将不胜感激。

干杯; 东北

【问题讨论】:

    标签: jquery json ajax amcharts


    【解决方案1】:

    valueField 应该通过它的名称指向数据中的一个实际字段,而您似乎正在分配它的值。要修复替换此行:

    UserGroupGraph.valueField = item['Users'];
    

    进入这个:

    UserGroupGraph.valueField = 'Users';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2017-06-02
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      相关资源
      最近更新 更多