Я конвертирую из amcharts3 в amcharts4 и мне это нравится! Тем не менее, я столкнулся с загадкой ... В V3 мои серии были спрятаны под нагрузкой (у меня есть несколько линий, которые логически находятся на одном графике, но могут не быть близкими по масштабу), поэтому пользователь может щелкнуть, чтобы скрыть / показать сериалы, которые они хотят увидеть. Я получил это для работы в V4 несколькими различными способами. Но моя проблема в том, что сериал неправильно масштабируется при первом показе. Чего не хватает, чтобы автоматически масштабировать серию при первом показе?
При первой загрузке все серии скрываются. Отлично. Щелкните серию, и она отобразится на графике, но не будет правильно масштабирована. Скройте эту серию, затем покажите это снова, и это показывает правильно.
Просто плоская линия вместо правильного масштабирования. ![First time to click on series, not scaled](https://i.stack.imgur.com/WJgP0.png)
Скрыть это снова, затем показать, и тогда это работает! ![After the series has been shown, then hidden, then shown again](https://i.stack.imgur.com/Wmem1.png)
Я использовал это в V3
graphs.push({
"valueField": value,
"title": value,
"hidden": true, // <--- Right here set to hidden
"bullet": "round",
"lineThickness ": 2,
"lineAlpha": 0.5
})
Так что теперь в V4 у меня есть функция для создания серии и скрытый набор true.
// Create series
function createSeries(valueY) {
// Create series
var series = chart.series.push(new am4charts.LineSeries());
series.dataFields.valueY = valueY;
series.dataFields.dateX = "YearWeek";
series.name = valueY;
series.strokeWidth = 3;
series.tensionX = 1;
series.bullets.push(new am4charts.CircleBullet());
series.connect = false;
series.tooltipText = `{valueY}`;
series.tooltip.pointerOrientation = "vertical";
series.hidden = true; // <-- hides correctly
series.hide(); // <-- Also hides
return series;
}
Я также попробовал вышеуказанную функцию, но без какой-либо опции скрытого или скрытого, затем в самом конце перебрал, чтобы скрыть их всех.
var series1 = createSeries("New Pairs");
.......
var series8 = createSeries("Moving Pens");
for( var i = 0; i < chart.series.length; i++ ) {
chart.hideGraph(chart.graphs[i]);
}