У меня есть график с двумя «сериями», только когда один имеет значение, а другой нет, он ломается и не имеет фона. Как это исправить? Я перепробовал несколько постов с разных сайтов, видео, а также много читал документацию. Кажется, ни один пример не работает, поэтому я не знаю точно, что делать. Если оно имеет значение, оно выглядит как нормальное.
Javascript
function initChartVendas() {
am4core.useTheme(am4themes_animated);
let chart = am4core.create(this.chartElement.nativeElement, am4charts.XYChart);
chart.data = this.generatechartData();
chart.numberFormatter.numberFormat = "'R$ ' #,###.##";
// Create axes
let dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.startLocation = 0.5;
dateAxis.endLocation = 0.5;
dateAxis.extraMax = null;
dateAxis.extraMin = null;
dateAxis.dateFormats.setKey('day', 'dd');
// Create value axis
let valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
valueAxis.baseValue = 900;
// Create series
let series = chart.series.push(new am4charts.LineSeries());
series.name = 'Pagos ';
series.dataFields.valueY = 'valor';
series.dataFields.dateX = 'dia';
series.strokeWidth = 3;
series.tooltipText = '{valueY.value}';
series.fillOpacity = 0.1;
series.tensionX = 0.8;
series.tensionY = 1;
series.fill = am4core.color('#5770ef');
series.stroke = am4core.color('#5867dd');
// Create series 2
if (this.dataCancelados) {
let seriesCancelados = chart.series.push(new am4charts.LineSeries());
seriesCancelados.name = 'Cancelados ';
seriesCancelados.dataFields.valueY = 'cancelado';
seriesCancelados.dataFields.dateX = 'dia';
seriesCancelados.strokeWidth = 3;
seriesCancelados.tooltipText = '{valueY.value}';
seriesCancelados.fillOpacity = 0.1;
seriesCancelados.tensionX = 0.8;
seriesCancelados.tensionY = 1;
seriesCancelados.fill = am4core.color('#f96191');
seriesCancelados.stroke = am4core.color('#fd397a');
}
// Add cursor
chart.cursor = new am4charts.XYCursor();
chart.cursor.behavior = 'none';
series.tooltip.getFillFromObject = false;
series.tooltip.adapter.add('x', (x, target) => {
// @ts-ignore
const valueY = series.tooltip.tooltipDataItem.valueY;
if (valueY < 0) {
series.tooltip.background.fill = chart.colors.getIndex(4);
} else {
series.tooltip.background.fill = am4core.color('#5770ef');
}
return x;
});
if (this.dataCancelados) {
chart.legend = new am4charts.Legend();
}
}
Изображение 1
Изображение 2