Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使Amcharts动画数据工作?_Javascript_Amcharts - Fatal编程技术网

Javascript 如何使Amcharts动画数据工作?

Javascript 如何使Amcharts动画数据工作?,javascript,amcharts,Javascript,Amcharts,我需要创建每分钟的实时值图表,它的最后一个条形图值在添加后增加一分钟,一分钟后添加值为1的新条形图,删除第一个条形图(最旧的) 我需要将所有这些更改设置为动画,如下面的示例所示 var chart=AmCharts.makeChart(“chartdiv”{ “类型”:“串行”, “主题”:“光”, “数据提供者”:generateChartData(), “图表”:[{ “valueField”:“value”, “类型”:“列”, “填充字母”:1, “alphaField”:“alpha

我需要创建每分钟的实时值图表,它的最后一个条形图值在添加后增加一分钟,一分钟后添加值为1的新条形图,删除第一个条形图(最旧的)

我需要将所有这些更改设置为动画,如下面的示例所示

var chart=AmCharts.makeChart(“chartdiv”{
“类型”:“串行”,
“主题”:“光”,
“数据提供者”:generateChartData(),
“图表”:[{
“valueField”:“value”,
“类型”:“列”,
“填充字母”:1,
“alphaField”:“alpha1”
}, {
“valueField”:“value2”,
“填充字母”:1,
“类型”:“列”,
“alphaField”:“alpha2”
}],
“价值轴”:[{
“最小值”:0,
“最高”:400
}],
“chartCursor”:{},
“分类法”:{
“parseDates”:正确,
“minPeriod”:“mm”
},
“zoomOutOnDataUpdate”:false,
“类别字段”:“日期”
});
函数generateChartData(){
var chartData=[];
var firstDate=新日期(2012,0,1);
firstDate.setDate(firstDate.getDate()-1000);
firstDate.setHours(0,Math.floor(Math.random()*10),0,0);
对于(变量i=0;i<10;i++){
var newDate=新日期(firstDate);
newDate.setHours(0,i,0,0);
var a=Math.round(Math.random()*(200+i))+100+i;
VarB=Math.round(Math.random()*(200+i))+100+i;
chartData.push({
日期:newDate,
价值:a,
价值2:b,
alpha1:(Math.random()<0.5?0:1),
字母2:(Math.random()<0.5?0:1)
} );
}
返回图表数据;
}
函数循环(){
var data=generateChartData();
图表.动画数据(数据、{
持续时间:1000,
完成:函数(){
setTimeout(loop,2000);
}
});
}
chart.addListener(“init”,函数(){
设置超时(循环,1000);
});
html,正文{
宽度:100%;
身高:100%;
边际:0px;
}
#沙特迪夫{
宽度:100%;
身高:100%;
}

数据需要是一个全新的数组,动画才能工作,如链接的示例所示。您需要克隆修改后的数组并将其传递到animateData方法中。下面是一个使用lodash的示例


谢谢,最后一个工具栏更新动画现在可以工作了,有没有办法为删除第一个工具栏和添加新的工具栏制作动画?不幸的是,没有。该插件目前仅限于为值更改制作动画,而不是添加/删除全新的值。
  chart.animateData(_.cloneDeep(data), {
    duration: 1000,
    complete: () => setTimeout(updateChartData, 500),
  });