Skip to content

Progress chart

Progress charts are a graphical representation of progress towards a specific goal or metric.

Usage

This chart displays the progress made toward a certain goal. It allows to monitor objectives, providing critical data for strategic decision-making and more.

Bar chart representation

A progress charts chart uses a linear format to represent progress, typically as a bar that grows from left to right. This type of chart works better for layouts that take more horizontal space.

Consider using it when there is a need to display detailed information, such as specific values or long labels, as this information can be displayed alongside the bar.

Progress bar chart

Radial chart representation

This variation of the chart shows the amount of progress made as a portion of a circle. Use it to display data in a compact and visually appealing way, and to save space on a dashboard or report.

Consider using it to show a general representation of progress, without too many details.

The chart can be configured to be a 360° circle or an arc.

Progress arc chart

Best practices

  • The default arc angle is 220°. If needed, it can also be configured to 360°, 90° or 270°.
  • Take the context into consideration when selecting colors. Use colors that are a good match and represent the situation.
  • Don't use it if the end of the progress cannot be determined.
  • Don't layer more than 4 arcs on the same chart.
  • Provide context by including labels or annotations that explain what the chart represents.

Design

Progress chart elements

  1. Chart title, 2. Legend, 3. Progress, 4. Base, 5. Value (optional)

Code

Usage

Required Packages
import { SiChartProgressComponent } from '@siemens/charts-ng/progress';

@Component({
  imports: [SiChartProgressComponent, ...]
})

Progress chart

A progress chart displays data values as a simple progress bar shown with arcs instead of bars. Every arc is used to visualize the progression of an item.

SiChartProgressComponent API Documentation

selector
si-chart-progress

Input Properties

Name Type Default Description
additionalOptions
EChartOption Used to override specific properties set in options .
autoZoomSeriesIndex
number -1 No auto dataZoom update) by default. Use together with visibleEntries .
axisPointer
(string | boolean | undefined) false Used to display axisPointer line either by click or mouse-move.
customLegendAction
boolean Enable custom legend click actions exposed by the selectionChanged event.
dataAngle
number 220 How big the data can get in degrees.
dataZoomFilterMode
FilterMode 'none' The data zoom filter mode. (see https://echarts.apache.org/en/option.html#dataZoom-inside.filterMode )

The value 'filter' will cause the lines to be disconnected to the outside of the chart.
dataZoomMaxValueSpan
number The upper limit of the data zoom slider (see https://echarts.apache.org/en/option.html#dataZoom-slider.maxValueSpan ).
dataZoomMinValueSpan
number The lower limit of the data zoom slider (see https://echarts.apache.org/en/option.html#dataZoom-slider.minValueSpan ).
dataZoomRange
DataZoomRange Apply a specific zoom range (see https://echarts.apache.org/en/option.html#dataZoom-inside ).
eChartContainerHeight
(string | null) The height of the ECharts container as decimal.
externalXAxisFormatter
(value: any, visibleRange: number) => string External XAxis Formatter from consumer
externalZoomSlider
boolean false Flag to use external zoom slider
maxEntries
number 1000 Maximum number of series data points shown in the chart.
options
EChartOption See [ECharts 5.x Documentation] https://echarts.apache.org/en/option.html for all available options.
palette
string undefined The name of the color palette (if any) of the loaded theme .
renderer
("canvas" | "svg") 'canvas' the renderer to use: canvas or svg
selectedItem
SelectedLegendItem { legendItemName: '' } Specify selected legend item.
series
ProgressChartSeries[] The series for the chart.
showCustomLegend
boolean false Enable to show a custom legend. The custom legend offers additional features such as, scroll bar to avoid legend and chart overlapping, Left and right alignment of legends based on y-axis, etc and many more.
showLegend
boolean true Show Echarts legend
subTitle
string The subtitle of the chart.
theme
any The desired theme to load.
themeCustomization
any Used to override specific options of loaded theme .
title
string The title of the chart.
visibleEntries
number -1 No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
visibleRange
number -1 No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
zoomInside
boolean false Enables zooming inside the chart with the mouse wheel/touch.

Whether zooming inside the chart is possible with mouse.
zoomSlider
boolean false Enables the zoom slider below the chart.
zoomSliderBrush
boolean true enable brush mode for zoom slider
zoomSliderRealtime
boolean true realtime update mode for zoom slider
zoomSliderShadow
boolean true Shows data shadow in dataZoom slider, use together with zoomSlider .
showTimeRangeBar
Deprecated
boolean false If true, add consumer-provided time range bar. Use together with zoomSlider .
Deprecated: The input will be removed in future versions as the time range bar slot is deprecated.

Output Properties

Name Type Description
chartGridResized
GridRectCoordinate Event emitted when chart grid is resized.
chartSeriesClick
LegendItem Event emitted when a chart series is clicked.
customLegendMultiLineInfoEvent
CustomLegendMultiLineInfo[] Event emitted when custom legend multi-line info changes.
dataZoom
DataZoomEvent Event emitted when data zoom changes.
pointer
AxisPointerEvent Event emitted when axis pointer moves.
selectionChanged
any Event emitted when selection changes e.g. clicking on a legend item.
showLegendChange
boolean Show Echarts legend
timeRangeChange
number Emitted when data zoom changes, indicating the time range in milliseconds, 0 for full range
visibleEntriesChange
number No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
visibleRangeChange
number No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .

Attributes and Methods

Name Type Default Description
startProgressIndication()
() => void Show loading indicator.
stopProgressIndication()
() => void Hide loading indicator.

Progress bar chart

A more traditional progress chart using horizontal bars.

SiChartProgressBarComponent API Documentation

selector
si-chart-progress-bar

Input Properties

Name Type Default Description
additionalOptions
EChartOption Used to override specific properties set in options .
autoZoomSeriesIndex
number -1 No auto dataZoom update) by default. Use together with visibleEntries .
axisPointer
(string | boolean | undefined) false Used to display axisPointer line either by click or mouse-move.
customLegendAction
boolean Enable custom legend click actions exposed by the selectionChanged event.
dataZoomFilterMode
FilterMode 'none' The data zoom filter mode. (see https://echarts.apache.org/en/option.html#dataZoom-inside.filterMode )

The value 'filter' will cause the lines to be disconnected to the outside of the chart.
dataZoomMaxValueSpan
number The upper limit of the data zoom slider (see https://echarts.apache.org/en/option.html#dataZoom-slider.maxValueSpan ).
dataZoomMinValueSpan
number The lower limit of the data zoom slider (see https://echarts.apache.org/en/option.html#dataZoom-slider.minValueSpan ).
dataZoomRange
DataZoomRange Apply a specific zoom range (see https://echarts.apache.org/en/option.html#dataZoom-inside ).
eChartContainerHeight
(string | null) The height of the ECharts container as decimal.
externalXAxisFormatter
(value: any, visibleRange: number) => string External XAxis Formatter from consumer
externalZoomSlider
boolean false Flag to use external zoom slider
labelPosition
string Used to display the label in inline or above the progress-bar.
maxEntries
number 1000 Maximum number of series data points shown in the chart.
options
EChartOption See [ECharts 5.x Documentation] https://echarts.apache.org/en/option.html for all available options.
palette
string undefined The name of the color palette (if any) of the loaded theme .
renderer
("canvas" | "svg") 'canvas' the renderer to use: canvas or svg
selectedItem
SelectedLegendItem { legendItemName: '' } Specify selected legend item.
series
ProgressBarChartSeries[] The series for the chart.
showCustomLegend
boolean false Enable to show a custom legend. The custom legend offers additional features such as, scroll bar to avoid legend and chart overlapping, Left and right alignment of legends based on y-axis, etc and many more.
showLegend
boolean true Show Echarts legend
subTitle
string The subtitle of the chart.
theme
any The desired theme to load.
themeCustomization
any Used to override specific options of loaded theme .
title
string The title of the chart.
visibleEntries
number -1 No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
visibleRange
number -1 No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
zoomInside
boolean false Enables zooming inside the chart with the mouse wheel/touch.

Whether zooming inside the chart is possible with mouse.
zoomSlider
boolean false Enables the zoom slider below the chart.
zoomSliderBrush
boolean true enable brush mode for zoom slider
zoomSliderRealtime
boolean true realtime update mode for zoom slider
zoomSliderShadow
boolean true Shows data shadow in dataZoom slider, use together with zoomSlider .
showTimeRangeBar
Deprecated
boolean false If true, add consumer-provided time range bar. Use together with zoomSlider .
Deprecated: The input will be removed in future versions as the time range bar slot is deprecated.

Output Properties

Name Type Description
chartGridResized
GridRectCoordinate Event emitted when chart grid is resized.
chartSeriesClick
LegendItem Event emitted when a chart series is clicked.
customLegendMultiLineInfoEvent
CustomLegendMultiLineInfo[] Event emitted when custom legend multi-line info changes.
dataZoom
DataZoomEvent Event emitted when data zoom changes.
pointer
AxisPointerEvent Event emitted when axis pointer moves.
selectionChanged
any Event emitted when selection changes e.g. clicking on a legend item.
showLegendChange
boolean Show Echarts legend
timeRangeChange
number Emitted when data zoom changes, indicating the time range in milliseconds, 0 for full range
visibleEntriesChange
number No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .
visibleRangeChange
number No auto dataZoom update) by default. Use together with autoZoomSeriesIndex .

Attributes and Methods

Name Type Default Description
startProgressIndication()
() => void Show loading indicator.
stopProgressIndication()
() => void Hide loading indicator.

Types Documentation

Index signature: [ key: string ]: any
Properties
dataZoom?: DataZoomComponentOption[]
grid?: (GridComponentOption | GridComponentOption[])
legend?: LegendComponentOption[]
series?: EChartSeries
("none" | "filter" | "weakFilter" | "empty")
Properties
end?: number
endValue?: (string | number | Date)
start?: number
startValue?: (string | number | Date)
visibleWidth?: number
Properties
legendItemName: string
Properties
name: string
percent: number
Properties
containerHeight: number
containerWidth: number
height: number
width: number
x: number
y: number
Properties
color?: string
dataIndex: number
itemName: string
selected?: boolean
Properties
customLegendId: number
isCustomLegendMultilined: boolean
Properties
autoZoomUpdate?: boolean
rangeEnd: number
rangeStart: number
rangeType: AxisType
requested?: DataZoomRange
source?: string
width?: number
Properties
dataIndex?: number
seriesIndex?: number
Properties
backgroundColor?: Color
borderColor?: Color
borderWidth?: number
bottom?: PositionSizeOption from BoxLayoutOptionMixin.bottom
calendarId?: OptionId from ComponentOnCalendarOptionMixin.calendarId
calendarIndex?: number from ComponentOnCalendarOptionMixin.calendarIndex
Deprecated: Use grid.outerBounds instead. Whether grid size contains axis labels. This approach estimates the size by sample labels. It works for most case but it does not strictly contain all labels in some cases.
containLabel?: boolean
coord?: CoordinateSystemDataCoord from ComponentOption.coord
coordinateSystem?: string from ComponentOption.coordinateSystem
coordinateSystemUsage?: CoordinateSystemUsageOption from ComponentOption.coordinateSystemUsage
height?: PositionSizeOption from BoxLayoutOptionMixin.height
id?: OptionId from ComponentOption.id
left?: PositionSizeOption from BoxLayoutOptionMixin.left
mainType?: "grid"
matrixId?: OptionId from ComponentOnMatrixOptionMixin.matrixId
matrixIndex?: number from ComponentOnMatrixOptionMixin.matrixIndex
name?: OptionName from ComponentOption.name
{left, right, top, bottom, width, height}: Define a outerBounds rect, based on: - the canvas by default. - or the dataToLayout result if a boxCoordinateSystem is specified.
outerBounds?: BoxLayoutOptionMixin
outerBoundsClampHeight?: (string | number)
Available only when outerBoundsMode is not 'none'. Offer a constraint to not to shrink the grid rect causing smaller that width/height. A string means percent, like '30%', based on the original rect size determined by grid.top/right/bottom/left/width/height .
outerBoundsClampWidth?: (string | number)
- 'all': Default. Contains the cartesian rect and axis labels and axis name. - 'axisLabel': Contains the cartesian rect and axis labels. This effect differs slightly from the previous option containLabel but more precise. - 'auto'/null/undefined: Default. be 'axisLabel' if containLabel:true , otherwise 'all'.
outerBoundsContain?: ("auto" | "all" | "axisLabel" | NullUndefined$1)
Define a constrains rect. Axis lines is firstly laid out based on the rect defined by grid.left/right/top/bottom/width/height . (for axis line alignment requirements between multiple grids) But if axisLabel and/or axisName overflow the outerBounds, shrink the layout to avoid that overflow.

Options: - 'none': outerBounds is infinity. - 'same': outerBounds is the same as the layout rect defined by grid.left/right/top/bottom/width/height . - 'auto'/null/undefined: Default. Use outerBounds , or 'same' if containLabel:true .

Note: grid.containLabel is equivalent to {outerBoundsMode: 'same', outerBoundsContain: 'axisLabel'} .

outerBoundsMode?: ("auto" | "none" | NullUndefined$1 | "same")
right?: PositionSizeOption from BoxLayoutOptionMixin.right
shadowBlur?: number from ShadowOptionMixin.shadowBlur
shadowColor?: string from ShadowOptionMixin.shadowColor
shadowOffsetX?: number from ShadowOptionMixin.shadowOffsetX
shadowOffsetY?: number from ShadowOptionMixin.shadowOffsetY
show?: boolean
tooltip?: any
top?: PositionSizeOption from BoxLayoutOptionMixin.top
type?: string from ComponentOption.type
width?: PositionSizeOption from BoxLayoutOptionMixin.width
z?: number from ComponentOption.z
zlevel?: number from ComponentOption.zlevel
("value" | "category" | "time" | "log")
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
import
imported from echarts
imported from echarts
imported from echarts
import
imported from echarts
imported from echarts
imported from echarts
import
imported from echarts
imported from echarts
import
imported from echarts
Properties
colorStops: GradientColorStop[] from GradientObject.colorStops
global?: boolean from GradientObject.global
id?: number from GradientObject.id
type: "linear"
x: number
x2: number
y: number
y2: number
Properties
colorStops: GradientColorStop[] from GradientObject.colorStops
global?: boolean from GradientObject.global
id?: number from GradientObject.id
r: number
type: "radial"
x: number
y: number
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
imported from echarts
Properties
id?: number from PatternObjectBase.id
image: (string | ImageLike)
imageHeight?: number
imageWidth?: number
repeat?: ImagePatternRepeat
rotation?: number from PatternObjectBase.rotation
scaleX?: number from PatternObjectBase.scaleX
scaleY?: number from PatternObjectBase.scaleY
type?: "pattern" from PatternObjectBase.type
x?: number from PatternObjectBase.x
y?: number from PatternObjectBase.y
Properties
id?: number from PatternObjectBase.id
rotation?: number from PatternObjectBase.rotation
scaleX?: number from PatternObjectBase.scaleX
scaleY?: number from PatternObjectBase.scaleY
svgElement?: SVGVNode
svgHeight?: number
svgWidth?: number
type?: "pattern" from PatternObjectBase.type
x?: number from PatternObjectBase.x
y?: number from PatternObjectBase.y
imported from echarts
imported from echarts
import
imported from echarts
imported from echarts
import
imported from echarts
Properties
name: string
percent: number

Except where otherwise noted, content on this site is licensed under MIT License.