我有一个问题要问你。
我的图表数据如下:
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一起放在一张图表(不同的“值”同一字段“类别”)上。每个将由一个单独的列表示。我该怎么做?
最佳答案
使用代码填充图形(通过索引访问多维数组):
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);
URL提琴:http://jsfiddle.net/eugensunic/Cww3D/452/
官方例子
小提琴的例子:
URL提琴:http://jsfiddle.net/amcharts/u3ypB/
您可以看到,当他们显示另一个数据集时,他们将其放置在另一个图表中。
结论:
不幸的是,一旦使用dataProvider属性填充了数据集,就差不多了。您已经创建了图形,并且无法以插入其他数据的方式对其进行修改。填充此操作属性后,您便完成了数据填充。
关于javascript - 一张图表中的一些表格使用amchart,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32865393/