Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环查看amcharts堆叠柱形图的每个对象属性_Javascript_Jquery_Amcharts - Fatal编程技术网

Javascript 循环查看amcharts堆叠柱形图的每个对象属性

Javascript 循环查看amcharts堆叠柱形图的每个对象属性,javascript,jquery,amcharts,Javascript,Jquery,Amcharts,您好,我正在使用ajax获取php mysql数据并将其显示到amcharts堆叠柱形图中,但由于我正在处理堆叠柱形图,因此我需要单独定义每个标题和值字段以生成图表的每个系列 这是我的JSFIDLE: 是否有一种方法可以循环遍历每个属性名称?要生成这样的输出,而不是手动插入它们 { "numberFormatter": { "precision": 2, "decimalSeparator": ".", "thou

您好,我正在使用ajax获取php mysql数据并将其显示到amcharts堆叠柱形图中,但由于我正在处理堆叠柱形图,因此我需要单独定义每个标题和值字段以生成图表的每个系列

这是我的JSFIDLE:

是否有一种方法可以循环遍历每个属性名称?要生成这样的输出,而不是手动插入它们

{
    "numberFormatter": {
            "precision": 2,
            "decimalSeparator": ".",
            "thousandsSeparator": ","
        },
    "fillAlphas": 0.8,
    "labelText": "[[title]]<br>" + "[[value]]",



    "labelPosition": "middle",
    "lineAlpha": 0.3,
    "title": "MAN",
    "type": "column",
    "color": "#000000",
    "valueField": "MAN"
  }, {
    "numberFormatter": {
            "precision": 2,
            "decimalSeparator": ".",
            "thousandsSeparator": ","
        },
    "fillAlphas": 0.8,
    "labelText":"[[title]]<br>" + "[[value]]",


    "labelPosition": "middle",
    "lineAlpha": 0.3,
    "title": "PAN",
    "type": "column",
    "color": "#000000",
    "valueField": "PAN"
  },
  {
    "numberFormatter": {
            "precision": 2,
            "decimalSeparator": ".",
            "thousandsSeparator": ","
        },
    "fillAlphas": 0.8,
    "labelText":"[[title]]<br>" + "[[value]]",


    "labelPosition": "middle",
    "lineAlpha": 0.3,
    "title": "DAV",
    "type": "column",
    "color": "#000000",
    "valueField": "DAV"
  }
{
“数字格式”:{
"精确":二,,
“小数分隔符”:“,
“千分位”:“
},
“填充字母”:0.8,
“标签文本”:“[[title]]
”+“[[value]]”, “标签位置”:“中间”, “lineAlpha”:0.3, “头衔”:“男人”, “类型”:“列”, “颜色”:“000000”, “价值场”:“人” }, { “数字格式”:{ "精确":二,, “小数分隔符”:“, “千分位”:“ }, “填充字母”:0.8, “标签文本”:“[[title]]
”+“[[value]]”, “标签位置”:“中间”, “lineAlpha”:0.3, “标题”:“潘”, “类型”:“列”, “颜色”:“000000”, “valueField”:“PAN” }, { “数字格式”:{ "精确":二,, “小数分隔符”:“, “千分位”:“ }, “填充字母”:0.8, “标签文本”:“[[title]]
”+“[[value]]”, “标签位置”:“中间”, “lineAlpha”:0.3, “标题”:“DAV”, “类型”:“列”, “颜色”:“000000”, “valueField”:“DAV” }
您可以定义一个模板,该模板具有所有不更改的所需图形设置属性,然后使用数据中的其他属性动态创建图形数组,并在运行时设置其他字段。由于您很可能知道您的categoryField将在前面是什么,因此您可以简单地循环响应的第一个数组元素中的其余属性,并设置您的title和valueField,因为它们是唯一正在更改的值

假设您的categoryField始终为
name

  var graphs = Object.keys(response[0]).reduce(function(graphsArray, key) {
    if (key !== "name") {
      graphsArray.push({
        "fillAlphas": 0.8,
        "labelText": "[[title]]<br>" + "[[value]]",
        "labelPosition": "middle",
        "lineAlpha": 0.3,
        "title": key,
        "type": "column",
        "color": "#000000",
        //"showAllValueLabels": true,
        "valueField": key
      });
    }
    return graphsArray;
  }, []);


  // ...
  var AmCharts.makeChart("chartdiv", {
    // ...
    "graphs": graphs,
    // ...
  });
var graphs=Object.keys(响应[0]).reduce(函数(graphsArray,key){
如果(键!=“名称”){
graphsArray.push({
“填充字母”:0.8,
“标签文本”:“[[title]]
”+“[[value]]”, “标签位置”:“中间”, “lineAlpha”:0.3, “标题”:关键, “类型”:“列”, “颜色”:“000000”, //“showAllValueLabels”:正确, “valueField”:键 }); } 返回图形数组; }, []); // ... var AmCharts.makeChart(“chartdiv”{ // ... “图形”:图形, // ... });
(请注意,
numberFormatter
不是图形级属性,而是顶级图表对象属性)


更新的fiddle:

您能解释一下您在这里发布的对象与您的JSFIDLE中硬编码的对象之间的区别吗?你想把什么转换成什么?抱歉搞混了。我想循环到每个属性名,以生成图形下的输出。因为我现在是手工做的