一个图表中的几个表使用了amchart

时间:2015-09-30 11:52:38

标签: javascript amcharts

我有一个问题要问你。 我的图表数据如下:

var chartDataFull=[]
chartData1=[{category:1, value:2},{category:2, value:3},{category:3, value:6}];
chartData2=[{category:1, value:5},{category:2, value:1},{category:3, value:2}];
chartData3=[{category:1, value:3},{category:2, value:9},{category:3, value:7}];

chartDataFull.push(chartData1, chartData2, chartData3);

我希望所有三个表都与amchart放在一个图表上(不同的“值”相同字段“类别”)。每个都将由一个单独的列表示。我该怎么办?

1 个答案:

答案 0 :(得分:0)

使用代码填充图表(通过索引访问多维数组):

var chartDataFull=[]
chartData1=[{category:1, value:2},{category:2, value:3},{category:3, value:6}];
chartData2=[{category:1, value:5},{category:2, value:1},{category:3, value:2}];
chartData3=[{category:1, value:3},{category:2, value:9},{category:3, value:7}];

chartDataFull.push(chartData1);
chartDataFull.push(chartData2);
chartDataFull.push(chartData3);

第一个解决方案:

仅在图表中显示一个数据集,并可选择在它们之间切换。

代码:

  

chart.dataProvider = chartDataFull [1]; //如果你在这里切换索引   想要另一个基于数据集的图表。范围(0-2)。

  chart = new AmCharts.AmSerialChart();
    chart.autoMarginOffset = 0;
    chart.dataProvider = chartDataFull[1]
    chart.categoryField = "category";
    chart.startDuration = 1;

小提琴示例:http://jsfiddle.net/Cww3D/448/

第二个解决方案

此解决方案最接近您的需求。这是通过累积你的数组来完成的。您已经提到您的数组不是静态的,您仍然可以使用concat()函数调整它以满足您的需求。

代码:

chartDataFull.push(chartData1);
chartDataFull.push(chartData2);
chartDataFull.push(chartData3);
var children = chartData1.concat(chartData2,chartData3);

网址小提琴:http://jsfiddle.net/eugensunic/Cww3D/452/

官方示例

小提琴示例:

网址小提琴:http://jsfiddle.net/amcharts/u3ypB/

您可以看到,当他们显示其他数据集时,他们会将其放在另一个图表中。

<强>结论:

不幸的是,一旦使用 dataProvider 属性填充数据集,就好了。您已创建图表,但无法以插入其他数据的方式对其进行修改。填充此操作属性后,您将完成数据填充。