A Linear Gauge presents a single data point within a predefined range along a scale. The data is represented by a bar indicating the value.
Simple Linear Gauge Copy Link
To create a Linear Gauge, use the <ag-gauge /> component with the type linear-gauge.
@Component({
selector: 'app-root',
standalone: true,
imports: [AgGauge],
template: `<ag-gauge [options]="options"></ag-gauge>`,
})
export class AppComponent {
public options: AgLinearGaugeOptions;
constructor() {
this.options = {
type: 'linear-gauge',
value: 80,
scale: {
min: 0,
max: 100,
},
};
}
}
In this configuration:
valueis the value displayed by the gauge.scale.mindefines the minimum value of the scale.scale.maxdefines the maximum value of the scale.- The data is represented by a coloured bar displayed over a grey scale.
Horizontal Linear Gauge Copy Link
To create a Horizontal Linear Gauge, set direction: 'horizontal'.
{
direction: 'horizontal',
}
Customisation Copy Link
Thickness Copy Link
{
thickness: 100,
bar: {
thickness: 50,
},
}
In the above configuration:
- The thickness of the scale is specified as 100 pixels.
- The thickness of the bar is specified as 50 pixels.
- It is also possible to use
thicknessRatioto specify the width of the bar as a proportion of the scale.
Labels Copy Link
An label can be configured with the label property.
{
label: {
enabled: true,
placement: 'inside-start',
avoidCollisions: true,
},
scale: {
label: {
enabled: false,
},
},
}
In this configuration:
- The label placement in relation to the gauge is configured by the
placementproperty. - The label is configured to avoid simultaneously overlapping the bar and scale with the
avoidCollisionsproperty. - The scale labels are hidden using the
scale.label.enabledoption. See the API Reference for more details about customising the scale label style and interval.
Segmentation Copy Link
To split the gauge into segments, set segmentation.enabled to true.
{
segmentation: {
enabled: true,
interval: {
count: 4,
},
spacing: 2,
},
}
In this configuration:
segmentation.intervalspecifies how the gauge is segmented. Available options are:step- segments the gauge at a fixed interval.count- segments the gauge a fixed number of times.values- segments the gauge at specific scale values.
spacingdefines the spacing between each segment.
Corner Radius Copy Link
{
cornerRadius: 99,
cornerMode: 'container',
}
In this configuration:
cornerRadiusspecifies the amount of curvature applied to each corner.cornerModecan be set tocontainerto apply rounded corners only to the start and end of the gauge, oritemfor all visual items within the gauge.
Colour Options Copy Link
Single Colour Copy Link
Both the bar and scale can be displayed using a solid fill.
{
scale: {
fill: '#f5f6fa',
},
bar: {
fill: '#4cd137',
},
}
Multiple Colours Copy Link
Multiple colours can be specified using the fills property.
{
bar: {
fills: [{ color: '#00a8ff' }, { color: '#9c88ff' }, { color: '#e84118' }],
fillMode: 'discrete',
},
}
In this configuration:
fillsspecifies an array of colours to use to fill the bar.fillModecan be set tocontinuousfor a gradient, ordiscreteto use blocks of solid colours.
The default behaviour is to space out the colours evenly. This can be customised by using colour stops.
Colour Stops Copy Link
{
bar: {
fills: [
{ color: '#E84118', stop: 35 },
{ color: '#FBC531', stop: 45 },
{ color: '#4CD137', stop: 55 },
{ color: '#FBC531', stop: 65 },
{ color: '#E84118' },
],
fillMode: 'discrete',
},
}
In this configuration:
- Each colour stops at the
stopvalue, and the next colour begins at that point. - If no
stopis provided, the fills will be distributed equally. - The last colour is used until the end of the scale or bar.
- Both
discreteandcontinuousmodes can be used with colour stops.
Targets Copy Link
Gauges often display targets or thresholds to provide context to the displayed data value. These can be added using the targets configuration array.
{
targets: [
{
value: 70,
text: 'Average',
},
],
}
In this configuration:
valueis the position for the target marker.textis an optional string for the target label.
Customisation Copy Link
{
targets: [
{
value: 30,
shape: 'triangle',
placement: 'before',
fill: 'white',
strokeWidth: 2,
spacing: 8,
},
{
value: 75,
placement: 'after',
shape: 'triangle',
fill: 'white',
strokeWidth: 2,
spacing: 8,
},
{
value: 90,
placement: 'middle',
shape: 'circle',
fill: 'white',
strokeWidth: 2,
spacing: 8,
},
],
}
In this configuration:
shapeis a marker shape.placementindicates the relative placement to the gauge - eitherbefore,after, ormiddle.sizeis the size of the marker, in pixels.spacingis spacing from the edge of the gauge to the marker. Ignored whenplacementismiddle.
Bullet Series Copy Link
The Linear Gauge is used to create a Bullet Series.
{
type: 'linear-gauge',
thickness: 50,
value: 50,
scale: {
min: 0,
max: 100,
fills: [{ color: '#A6A6A5' }, { color: '#BFBFBF' }, { color: '#D9D9D9' }],
fillMode: 'discrete',
},
bar: {
thickness: 25,
fill: 'black',
},
targets: [
{
value: 60,
shape: 'line',
size: 20,
placement: 'middle',
strokeWidth: 2,
},
],
}
In the above configuration:
- The bar
thicknessis set to less that the gauge thickness. - The scale has a number of
fillsand afillModeofdiscrete. - The target has
lineshape with astrokeWidthof 2 and is placed in themiddle.