Guruprasad Rao Guruprasad Rao - 4 months ago 17
Javascript Question

creating serial bar graph for complex data amcharts

Below is the response I get as

json
from server:

[{
"data1": {
"name": "Test1",
"count": 0,
"amount": 0,
"amtData": [
0,0,0,0
],
"cntData": [
0,0,0,0
],
"color": "#FF0F00"
},
"data2": {
"name": "Test2",
"count": 1,
"amount": 4164,
"amtData": [
4164,0,0,0
],
"cntData": [
1,0,0,0
],
"color": "#FF0F00"
},
"data3": {
"name": "Test3",
"count": 1,
"amount": 2509,
"amtData": [
2509,0,0,0
],
"cntData": [
1,0,0,0
],
"color": "#FF0F00"
},
"data4": {
"name": "Test4",
"count": 1,
"amount": 9909,
"amtData": [
9909,0,0,0
],
"cntData": [
1,0,0,0
],
"color": "#FF0F00"
},
"data5": {
"name": "Test5",
"count": 0,
"dollars": 0,
"amount": [
0,0,0,0
],
"cntData": [
0,0,0,0
],
"color": "#FF0F00"
}
}]


and here am trying to create my
chart
.

var chart = AmCharts.makeChart("chartdiv", {
"theme": "light",
"type": "serial",
"dataProvider": data, //assigning it as data
"startDuration": 1,
"graphs": [{
"balloonText": "<b>[[category]]</b><br>starts at [[count]]<br>ends at [[amount]]",
"colorField": "color",
"fillAlphas": 0.8,
"lineAlpha": 0,
"openField": "count", //base start field
"type": "column",
"valueField": "amount" //value field
}],
"rotate": true,
"columnWidth": 0.8,
"categoryField": "name", //name field
"categoryAxis": {
"gridPosition": "start",
"axisAlpha": 0,
"gridAlpha": 0,
"position": "left"
},
"export": {
"enabled": true
}
});


How much ever I try, I am getting undefined instead of
chart
.. No
console errors
either I could make use of. How can I go restructuring this complex data and produce a graph out of it?

Here is the fiddle and this is just sample fiddle which I was referring.

Answer

You should remove the data1 to data5 properties from your dataProvider:

var data = [
  {
    "name": "Test1",
    "count": 0,
    "amount": 0,
    "amtData": [
      0,
      0,
      0,
      0
    ],
    "cntData": [
      0,
      0,
      0,
      0
    ],
    "color": "#FF0F00"
  },
  ...
];

Look here

Comments