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

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/

10-12 12:35
查看更多