我不熟悉AmCharts,尝试将数组中的JSON数据加载到图表中并获取排序的数据,图表未加载,这是我在做什么,我遇到此错误图表未处置id-191如何我纠正这个吗?谢谢。
HTML
<div id="Fourdiv">
Javascript
window.addEventListener("load", genFunction());
function genFunction() {
var x2;
var jsonx;
var x = [];
var ref = firebase.database().ref("Chartdata");
ref.on('value', function (snapshot) {
snapshot.forEach(function (childSnapshot) {
var childKey = childSnapshot.key;
x2 = childSnapshot.val();
jsonx = JSON.stringify(x2);
x.push(jsonx);
});
});
am4core.ready(function () {
// Themes begin
am4core.useTheme(am4themes_animated);
// Themes end
// Create chart instance
var chart = am4core.create("Fourdiv", am4charts.XYChart);
for (i = 0; i < x.length; i++) {
chart.x.push({ "x": x[i].x, "y": x[i].y });
}
// Add data
chart.data = x;
// Create axes
var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis());
categoryAxis.dataFields.category = "x";
categoryAxis.renderer.grid.template.location = 0;
categoryAxis.renderer.minGridDistance = 30;
categoryAxis.renderer.labels.template.adapter.add("dy", function (dy, target) {
if (target.dataItem && target.dataItem.index & 2 == 2) {
return dy + 25;
}
return dy;
});
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
// Create series
var series = chart.series.push(new am4charts.ColumnSeries());
series.dataFields.valueY = "y";
series.dataFields.categoryX = "x";
//series.name = "Visits";
series.columns.template.tooltipText = "{categoryX}: [bold]{valueY}[/]";
series.columns.template.fillOpacity = .8;
var columnTemplate = series.columns.template;
columnTemplate.strokeWidth = 1;
columnTemplate.strokeOpacity = 1;
});// end am4core.ready()
}
am4core.ready
与window.addEventListener("load", ...)
相同。如果您已经在使用自己的onload处理程序,则不需要它。
您还错误地设置了事件侦听器-您需要传入函数引用(不带括号):
window.addEventListener("load", genFunction);