Как скрыть все серии на amcharts 4 под нагрузкой, но правильно ли работает автоматическое масштабирование? - PullRequest
0 голосов
/ 24 апреля 2020

Я конвертирую из amcharts3 в amcharts4 и мне это нравится! Тем не менее, я столкнулся с загадкой ... В V3 мои серии были спрятаны под нагрузкой (у меня есть несколько линий, которые логически находятся на одном графике, но могут не быть близкими по масштабу), поэтому пользователь может щелкнуть, чтобы скрыть / показать сериалы, которые они хотят увидеть. Я получил это для работы в V4 несколькими различными способами. Но моя проблема в том, что сериал неправильно масштабируется при первом показе. Чего не хватает, чтобы автоматически масштабировать серию при первом показе?

При первой загрузке все серии скрываются. Отлично. Щелкните серию, и она отобразится на графике, но не будет правильно масштабирована. Скройте эту серию, затем покажите это снова, и это показывает правильно.

Просто плоская линия вместо правильного масштабирования. First time to click on series, not scaled

Скрыть это снова, затем показать, и тогда это работает! After the series has been shown, then hidden, then shown again

Я использовал это в 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]);
}
...