Я пытаюсь создать столбчатую диаграмму, в которой в столбце показан процент выполнения какой-либо задачи. Данные обновляются каждые тридцать секунд. Я хочу сделать так, чтобы, когда задание было выполнено на 0-50%, в противном случае столбец зеленый.
series.columns.template.adapter.add('stroke', (stroke, target) =>
{
let returnValue;
if (target.dummyData.level < 50)
returnValue = "#f26969";
else
returnValue = '#9d4062';
return am4core.color(returnValue);
})
Где уровень - это часть переменной, называемой разбивкой, назначенной полям свойств через:
seriesCanisterLevels.tooltip.propertyFields.dummyData = "breakdown";
Этот код отлично работает при первом запуске (ie при первом отображении графика). Если я установлю начальное значение> или <50, я получу ожидаемое поведение. Однако после этого, поскольку данные динамически изменяются каждые 30 секунд, они не меняют цвет (хотя длина столбцов изменяется). </p>
При некоторых исследованиях выясняется, что изменение свойства propertyField и последующего chart.invalidateRawData () не вызывает повторного запуска адаптеров. Есть ли обходной путь для этого (я не хочу вызывать chart.invalidateData, поскольку я не хочу перерисовывать весь график, хотя это работает)