2017-10-16 93 views
0

我想的Animated Time-Line Pie Chart如何为Animated amcharts时间轴饼图提供多个值域?

这里balloontext为显示多于一个的值是代码:

function pushvalue(curyear,curmonth,monvalue,state,statecount){ 
array.push({year: curyear, month: curmonth, count: monvalue, state: state, statecount: statecount}); 
} 

var monthNames = ["January", "February","March", "April", "May", "June","July", "August", "September", "October", "November", "December”]; 
var currentYear = 1997; 
var array = []; 

for (var i = 0; i < 4; ++i) { 
for (var j = 0; j < 12; ++j) { 
pushvalue(currentYear + i, monthNames[j],count[j],state[j],statecount[j]); 
} 
} 

var chartData = {}; 
for (var i = 0; i < array.length; ++i) { 
    if (!chartData[array[i].year]) { 
    chartData[array[i].year] = []; 
    } 
    chartData[array[i].year].push({"Month": array[i].month, "Count": array[i].count, “State”: array[i].state, “StateCount”: array[i].statecount }); 
} 

var currentYear = 1997; 
var chart = AmCharts.makeChart("chartdiv", { 
    "type": "pie", 
    "theme": "light", 
    "dataProvider": [], 
    "valueField": "Count", 
    “valueField1”: “State”, 
    “valueField2”: “StateCount”, 
    "titleField": "Month", 
    "startDuration": 0, 
    "innerRadius": 80, 
    "pullOutRadius": 20, 
    "marginTop": 30, 
“balloonText”: “Completed [[value2]] for [[value1]] states in [[title]] month”, 
“labelText”: “[[title]] - [[value]]”, 
    "titles": [{ 
    "text": "Test chart" 
    }], 
    "allLabels": [{ 
    "y": "54%", 
    "align": "center", 
    "size": 25, 
    "bold": true, 
    "text": "1995", 
    "color": "#555" 
    }, { 
    "y": "49%", 
    "align": "center", 
    "size": 15, 
    "text": "Year", 
    "color": "#555" 
    }], 
    "listeners": [ { 
    "event": "init", 
    "method": function(e) { 
     var chart = e.chart; 

    function getCurrentData() { 
    var data = chartData[currentYear]; 
    currentYear++; 
    if (currentYear > 2000) 
     currentYear = 1997; 
    return data; 
    } 

    function loop() { 
    chart.allLabels[0].text = currentYear; 
    var data = getCurrentData(); 
    chart.animateData(data, { 
     duration: 1000, 
     complete: function() { 
     setTimeout(loop, 3000); 
     } 
    }); 
    } 

    loop(); 
} 
    } ], 
    }); 

我想要的valueField,valueField1 & valueField2要显示在balloonText和LabelText的,而饼图加载。

但加载时图表显示为空白,因为它没有读取valueField1 & valueField2。 我知道我在分配valueField1 & valueField2时犯了一些错误。 有人可以帮我修复它和 我可以知道如何使chartData.state和chartData.statecount中的图表显示值?

谢谢!

PS这是

for (var i = 0; i < 4; ++i) { 
for (var j = 0; j < 12; ++j) { 
pushvalue(currentYear + i,monthNames[j],count[j],state[j],statecount[j]); 
} 
} 

分配How to provide data to Animated time-line pie amcharts? 价值观的延续不是实际的督促代码。

回答

0

你不能设置多个valueFields饼图中,但你可以通过名字引用[[shortcodes]]领域,即[[State]][[StateCount]]作为balloonTextlabelText文档(重点煤矿)表示:

可以使用以下标签:[[value]],[[title]],[[percents]],[[description]] 或数据提供者的任何其他字段名称。

balloonText应该是这样的:

"balloonText": "Completed [[State]] for [[StateCount]] states in [[title]] month",

相应地调整你LabelText的。

Demo

+0

我从来不知道amchart接受balloonText和LabelText的短代码。这完美的作品!非常感谢@xorspark –

相关问题