#javascript #angular #typescript #syncfusion
#javascript #угловой #typescript #syncfusion
Вопрос:
Я хочу динамически скрывать серию из диаграммы, если значение этой серии равно 0 для этого конкретного года.
Итак, из приведенной ниже диаграммы вы можете видеть, что в 2020 году и выше у меня нет фактического значения, поэтому я не хочу показывать разрыв между обеими сериями
Я попробовал приведенный ниже код, но он скрывает все фактические значения за год. По сути, он скрывает фактическое значение в целом. Я хочу только, если фактическое значение равно 0, тогда не оставляйте пробел между андеррайтингом и грилями
public seriesRender(args: ISeriesRenderEventArgs ): void {
for (const key in args.data) {
if (Object.prototype.hasOwnProperty.call(args.data, key)) {
const element = args.data[key];
if(element.actual == 0 amp;amp; args.series.name == 'Actual'){
args.series.chart.visibleSeries.forEach(element => {
if(element.name == 'Actual')
element.visible = false;
});
}
}
}
}
HTML :
<e-series-collection>
<e-series [animation]="animation" [dataSource]='chartData' type='Column' xName='year' yName='underwriting' [name]='underwritingLabel' [marker]='marker'></e-series>
<e-series [animation]="animation" [dataSource]='chartData' type='Column' xName='year' yName='actual' name='Actual' == 0" [marker]='marker'></e-series>
<e-series [animation]="animation" [dataSource]='chartData' type='Column' xName='year' yName='grills' name='Grills' [marker]='marker'></e-series>
</e-series-collection>
Комментарии:
1. visible = false все равно будет занимать место в dom. У меня недостаточно кода, чтобы действительно дать точный ответ. Но попробуйте свернуть (скрыть также для dom) или удалить объект, когда он равен 0. (Это можно сделать с помощью «удалить элемент»)
2. @LotteLemmens Я пробовал visible = false, но он скрывает все серии с помощью actual . Даже если я удалю значение, оно все равно будет отображаться на графике, потому что мой html выглядит так, как указано выше.
Ответ №1:
На данный момент невозможно пропустить пустые пробелы между столбчатой диаграммой. Поскольку при вычислении рядов мы разделили ширину столбца поровну для всех точек в зависимости от количества отображаемых рядов. В соответствии с вашими требованиями, если необходимо удалить определенный пробел, мы должны изменить ширину столбца для точки, что также повлияет на ширину столбца для остальных точек. И это не будет визуально приятным. Следовательно, этот сценарий нельзя рассматривать как запрос функции.
Дайте нам знать, если у вас возникнут какие-либо опасения.
Спасибо