2012-12-27 101 views
0

我正在使用AmCharts。我需要在氣球文本中顯示值,該值不是值字段。例如:X axis Value 0 , Y axis 1, (0,1) is 2 ; (1,2) is 5查找AmCharts中兩個點序列值之間的差異?

我需要顯示值(0,1)(1,2)之間的差異 - 這意味着在點(1,2)點的氣球的「3」。有任何想法嗎 ?

+0

沒有,這樣一來就不會工作。指定您使用的圖表(JavaScript,Flash,Silverlight等)以及您是否有權訪問圖表庫的源代碼。 – vorrtex

+0

我正在使用JavaScript區域圖(amcharts)。這裏有一個例子,指定了兩個測序計數之間的差異。 http://www.targetprocess.com/blog/wp-content/uploads/2010/02/cumulative_flow_diagram.png 像這樣我需要顯示。我該如何執行? – Siddharth

回答

1

是的,你的屏幕截圖上的圖表是可能實現的。

首先,爲圖表數據添加其他字段,例如labelGraph1, labelGraph2。然後,您可以使用AmCharts.AmGraph對象的labelText屬性。

var chartData = [{ 
    title: "Apples", 
    value1: 24, 
    value2: 28, 
    labelGraph1: null, 
    labelGraph2: null 
}, { 
    title: "Bananas", 
    value1: 27, 
    value2: 31, 
    labelGraph1: null, 
    labelGraph2: null 
}, { 
    title: "Cherries", 
    value1: 27, 
    value2: 39, 
    labelGraph1: null, 
    labelGraph2: null 
}]; 

for(var i = 0; i < chartData.length; i++) { 
    chartData[i].labelGraph1 = chartData[i].value1; 
    chartData[i].labelGraph2 = chartData[i].value2 - chartData[i].value1; 
} 

var chart; 

AmCharts.ready(function() { 
    // SERIAL CHART 
    chart = new AmCharts.AmSerialChart(); 
    chart.dataProvider = chartData; 
    chart.categoryField = "title"; 

    // GRAPHS            
    var graph1 = new AmCharts.AmGraph(); 
    graph1.valueField = "value1"; 
    graph1.type = "line"; 
    graph1.fillAlphas = 0.6; 
    graph1.labelText = "[[labelGraph1]]"; 
    chart.addGraph(graph1); 

    var graph2 = new AmCharts.AmGraph(); 
    graph2.valueField = "value2"; 
    graph2.type = "line"; 
    graph2.fillAlphas = 0.6; 
    graph2.labelText = "[[labelGraph2]]"; 
    chart.addGraph(graph2); 

    // WRITE 
    chart.write("chartdiv") 
}); 

唯一的一個難點是計算顯示字段的值。 我做到了的話,你應該根據自己的數據更改功能:

for(var i = 0; i < chartData.length; i++) { 
    chartData[i].labelGraph1 = chartData[i].value1; 
    chartData[i].labelGraph2 = chartData[i].value2 - chartData[i].value1; 
} 
+0

謝謝,它的工作。 – Siddharth