Для эффекта градиента вы можете использовать свойство серии overlay .
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<kendo-chart>
<kendo-chart-title text="Units sold"></kendo-chart-title>
<kendo-chart-category-axis>
<kendo-chart-category-axis-item [categories]="['Q1', 'Q2', 'Q3', 'Q4']">
</kendo-chart-category-axis-item>
</kendo-chart-category-axis>
<kendo-chart-series>
<kendo-chart-series-item type="bar" [gap]="2" [spacing]=".25" [data]="[100, 123, 234, 343]" [overlay]="{gradient: 'roundedBevel'}">
</kendo-chart-series-item>
<kendo-chart-series-item type="bar" [data]="[120, 67, 231, 196]" [overlay]="{gradient: 'glass'}" >
</kendo-chart-series-item>
<kendo-chart-series-item type="bar" [data]="[45, 124, 189, 143]" [overlay]="{gradient: 'none'}">
</kendo-chart-series-item>
<kendo-chart-series-item type="bar" [data]="[87, 154, 210, 215]" [overlay]="{gradient: 'sharpBevel'}">
</kendo-chart-series-item>
</kendo-chart-series>
</kendo-chart>
`
})
export class AppComponent {}
Также наткнулся на это демо , для создания пользовательских линейных градиентов. Пожалуйста, обратитесь к приведенному ниже коду. В качестве примера я создал столбцовую диаграмму с линейным градиентом.
import { Component } from '@angular/core';
import { Surface, Path, Text, Group, Layout, LinearGradient, GradientOptions, ShapeOptions } from '@progress/kendo-drawing';
import { Arc as DrawingArc, GradientStop } from '@progress/kendo-drawing';
import { Arc, Rect, ArcOptions } from '@progress/kendo-drawing/geometry';
function createColumn(rect, color) {
const origin = rect.origin;
const bottomRight = rect.bottomRight();
const gradient = new LinearGradient(<GradientOptions>{
stops: [new GradientStop(0, "#98FB98", 1),
new GradientStop(0.5, color, 1)]
});
const path = Path.fromRect(rect, <ShapeOptions>{
fill: gradient,
stroke: {
color: color,
width: 1
}
});
const group = new Group();
group.append(path);
return group;
}
@Component({
selector: 'my-app',
template: `
<kendo-chart [seriesDefaults]="chartConfig.seriesDefaults" >
<kendo-chart-title text="Units sold"></kendo-chart-title>
<kendo-chart-category-axis>
<kendo-chart-category-axis-item [categories]="['Q1', 'Q2', 'Q3', 'Q4']">
</kendo-chart-category-axis-item>
</kendo-chart-category-axis>
<kendo-chart-series>
<kendo-chart-series-item type="bar" [gap]="2" [spacing]=".25" [data]="[100, 123, 234, 343]" color="#008852">
</kendo-chart-series-item>
</kendo-chart-series>
</kendo-chart>
`
})
export class AppComponent {
public chartConfig = {
seriesDefaults: {
type: 'column',
visual: function (e) {
return createColumn(e.rect, e.options.color);
}
}
};
}