Я пытаюсь построить XY-диаграмму в amcharts4, у которой есть две оси Y, одна слева, другая справа.Две оси относятся к двум различным переменным, которые имеют различный диапазон значений.Я не могу настроить график так, чтобы обе оси y «разделяли» ось y = 0.Это полезно, когда я хочу увидеть часть оси x, и меня больше интересует динамика двух отдельных переменных.Меня больше интересует просмотр, когда переменные являются положительными или отрицательными, и как они соотносятся друг с другом (точное значение будет отображаться в tootlip).Одним из решений может быть использование фиксированной шкалы с большим диапазоном между двумя значениями оси y.Но в этом случае, если у меня есть переменная, которая немного изменяется вокруг 0, а другая имеет больший диапазон, линия первого будет довольно плоской по сравнению с огромными изменениями во втором.
Пример: https://imgur.com/a/HFqsIy6 Светло-синий обозначает ось y слева, фиолетовый - справа.
То, что я хочу, это график, который имеет значения слева [-2, 2] и справа [-400, 400], так что 0 находится в центре обеих осей y.Теперь у меня есть график, на котором фиолетовая переменная, кажется, имеет отрицательные значения, так как я читаю ее слева направо.
Одна идея - вручную вычислить диапазон оси, чтобы в результате получитьновый интервал [-400, 400], но есть две проблемы: - У меня есть большой объем данных, чтобы проверить значения max и min на обеих осях.В моем случае на графике будет отображаться около 10 переменных.- Я не могу обобщить исчисление, потому что значения могут быть любого типа: только отрицательные, только положительные или как положительные, так и отрицательные.Я думаю, что функция, которая производит желаемый выходной интервал, слишком дорога для меня.
Существует ли метод / свойство amcharts4 / и т.д., которые позволяют мне легко это сделать?
const data = [{"var1": 0, "var2": 400, "MyDate": `today`}, {"var1": 0, "var2": 0, "MyDate": `tomorrow`};
const chart = am4core.create(chartTitle, am4charts.XYChart);
chart.data = data;
const dateAxis = this.chart.xAxes.push(new am4charts.DateAxis());
const valueAxis1 = this.chart.yAxes.push(new am4charts.ValueAxis());
const valueAxis2 = this.chart.yAxes.push(new am4charts.ValueAxis());
valueAxis2.renderer.opposite = true;
const series = this.chart.series.push(new am4charts.LineSeries());
series.dataFields.valueY = "var1";
series.dataFields.dateX = "MyDate";
const series2 = this.chart.series.push(new am4charts.LineSeries());
series2.dataFields.valueY = "var2";
series2.dataFields.dateX = "MyDate";