---
name: "QwtPlotMultiBarChart"
section: "3"
platform: "linux"
package: "libqwt-doc"
version: "6.1.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/QwtPlotMultiBarChart"
---

# QwtPlotMultiBarChart(3)

QwtPlotMultiBarChart displays a series of a samples that consist each of a set of values.

## NAME

QwtPlotMultiBarChart - **QwtPlotMultiBarChart** displays a series of a samples that consist each of a set of values.

## SYNOPSIS

`#include <qwt_plot_multi_barchart.h>`

Inherits **QwtPlotAbstractBarChart**, and **QwtSeriesStore\< QwtSetSample \>**.

### Public Types

enum **ChartStyle** { **Grouped**, **Stacked** }\
 Chart styles.

### Public Member Functions

**QwtPlotMultiBarChart** (const QString &**title**=QString())\
 **QwtPlotMultiBarChart** (const **QwtText** &**title**)\
 virtual **~QwtPlotMultiBarChart** ()\
 Destructor.  virtual int **rtti** () const\
 void **setBarTitles** (const QList\< **QwtText** \> &)\
 Set the titles for the bars.  QList\< **QwtText** \> **barTitles** () const\
 void **setSamples** (const QVector\< **QwtSetSample** \> &)\
 void **setSamples** (const QVector\< QVector\< double \> \> &)\
 void **setSamples** (**QwtSeriesData**\< **QwtSetSample** \> \*)\
 void **setStyle** (**ChartStyle** **style**)\
 **ChartStyle** **style** () const\
 void **setSymbol** (int valueIndex, **QwtColumnSymbol** \*)\
 Add a symbol to the symbol map.  const **QwtColumnSymbol** \* **symbol** (int valueIndex) const\
 void **resetSymbolMap** ()\
 virtual void **drawSeries** (QPainter \*painter, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect, int from, int to) const\
 virtual QRectF **boundingRect** () const\
 virtual QList\< **QwtLegendData** \> **legendData** () const\
 virtual **QwtGraphic** **legendIcon** (int index, const QSizeF &) const\

### Protected Member Functions

**QwtColumnSymbol** \* **symbol** (int valueIndex)\
 virtual **QwtColumnSymbol** \* **specialSymbol** (int sampleIndex, int valueIndex) const\
 Create a symbol for special values.  virtual void **drawSample** (QPainter \*painter, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect, const **QwtInterval** &boundingInterval, int index, const **QwtSetSample** &**sample**) const\
 virtual void **drawBar** (QPainter \*, int sampleIndex, int valueIndex, const **QwtColumnRect** &) const\
 void **drawStackedBars** (QPainter \*painter, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect, int index, double **sampleWidth**, const **QwtSetSample** &**sample**) const\
 void **drawGroupedBars** (QPainter \*painter, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect, int index, double **sampleWidth**, const **QwtSetSample** &**sample**) const\

## Detailed Description

**QwtPlotMultiBarChart** displays a series of a samples that consist each of a set of values.

Each value is displayed as a bar, the bars of each set can be organized side by side or accumulated.

Each bar of a set is rendered by a **QwtColumnSymbol**, that is set by **setSymbol()**. The bars of different sets use the same symbols. Exceptions are possible by overloading **specialSymbol()** or overloading **drawBar()**.

Depending on its **orientation()** the bars are displayed horizontally or vertically. The bars cover the interval between the **baseline()** and the value.

In opposite to most other plot items, **QwtPlotMultiBarChart** returns more than one entry for the legend - one for each symbol.

**See also:**

**QwtPlotBarChart**, **QwtPlotHistogram** **QwtPlotSeriesItem::orientation()**, **QwtPlotAbstractBarChart::baseline()**

## Member Enumeration Documentation

### enum QwtPlotMultiBarChart::ChartStyle

Chart styles. The default setting is **QwtPlotMultiBarChart::Grouped**.

**See also:**

**setStyle()**, **style()**

**Enumerator**

- *Grouped*

  *The bars of a set are displayed side by side.*

- *Stacked*

  *The bars are displayed on top of each other accumulating to a single bar. All values of a set need to have the same sign.*

## Constructor & Destructor Documentation

### QwtPlotMultiBarChart::QwtPlotMultiBarChart (const QString & title = `QString()`)` [explicit]`

*Constructor*

**Parameters:**

*title Title of the chart*

### QwtPlotMultiBarChart::QwtPlotMultiBarChart (const QwtText & title)` [explicit]`

*Constructor*

**Parameters:**

*title Title of the chart*

## Member Function Documentation

### QList\< QwtText \> QwtPlotMultiBarChart::barTitles () const

**Returns:**

*Bar titles*

**See also:**

**setBarTitles()***,* **legendData()**

### QRectF QwtPlotMultiBarChart::boundingRect () const` [virtual]`

**Returns:**

*Bounding rectangle of all samples. For an empty series the rectangle is invalid.*

*Reimplemented from* **QwtPlotSeriesItem***.*

### void QwtPlotMultiBarChart::drawBar (QPainter \* painter, int sampleIndex, int valueIndex, const QwtColumnRect & rect) const` [protected]`, ` [virtual]`

*Draw a bar*

**Parameters:**

*painter Painter* \
 *sampleIndex Index of the sample - might be -1 when the bar is painted for the legend* \
 *valueIndex Index of a value in a set* \
 *rect Directed target rectangle for the bar*

**See also:**

**drawSeries()**

### void QwtPlotMultiBarChart::drawGroupedBars (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, const QRectF & canvasRect, int index, double sampleWidth, const QwtSetSample & sample) const` [protected]`

*Draw a grouped sample*

**Parameters:**

*painter Painter* \
 *xMap x map* \
 *yMap y map* \
 *canvasRect Contents rectangle of the canvas* \
 *index Index of the sample to be painted* \
 *sampleWidth Boundng width for all bars of the smaple* \
 *sample Sample*

**See also:**

**drawSeries()***,* **sampleWidth()**

### void QwtPlotMultiBarChart::drawSample (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, const QRectF & canvasRect, const QwtInterval & boundingInterval, int index, const QwtSetSample & sample) const` [protected]`, ` [virtual]`

*Draw a sample*

**Parameters:**

*painter Painter* \
 *xMap x map* \
 *yMap y map* \
 *canvasRect Contents rectangle of the canvas* \
 *boundingInterval Bounding interval of sample values* \
 *index Index of the sample to be painted* \
 *sample Sample value*

**See also:**

**drawSeries()**

### void QwtPlotMultiBarChart::drawSeries (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, const QRectF & canvasRect, int from, int to) const` [virtual]`

*Draw an interval of the bar chart*

**Parameters:**

*painter Painter* \
 *xMap Maps x-values into pixel coordinates.* \
 *yMap Maps y-values into pixel coordinates.* \
 *canvasRect Contents rectangle of the canvas* \
 *from Index of the first point to be painted* \
 *to Index of the last point to be painted. If to \< 0 the curve will be painted to its last point.*

**See also:**

*drawSymbols()*

*Implements* **QwtPlotSeriesItem***.*

### void QwtPlotMultiBarChart::drawStackedBars (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, const QRectF & canvasRect, int index, double sampleWidth, const QwtSetSample & sample) const` [protected]`

*Draw a stacked sample*

**Parameters:**

*painter Painter* \
 *xMap x map* \
 *yMap y map* \
 *canvasRect Contents rectangle of the canvas* \
 *index Index of the sample to be painted* \
 *sampleWidth Width of the bars* \
 *sample Sample*

**See also:**

**drawSeries()***,* **sampleWidth()**

### QList\< QwtLegendData \> QwtPlotMultiBarChart::legendData () const` [virtual]`

**Returns:**

*Information to be displayed on the legend*

*The chart is represented by a list of entries - one for each bar title. Each element contains a bar title and an icon showing its corresponding bar.*

**See also:**

**barTitles()***,* **legendIcon()***,* **legendIconSize()**

*Reimplemented from* **QwtPlotItem***.*

### QwtGraphic QwtPlotMultiBarChart::legendIcon (int index, const QSizeF & size) const` [virtual]`

**Returns:**

*Icon for representing a bar on the legend*

**Parameters:**

*index Index of the bar* \
 *size Icon size*

**Returns:**

*An icon showing a bar*

**See also:**

**drawBar()***,* **legendData()**

*Reimplemented from* **QwtPlotItem***.*

### void QwtPlotMultiBarChart::resetSymbolMap ()

*Remove all symbols from the symbol map*

### int QwtPlotMultiBarChart::rtti () const` [virtual]`

**Returns:**

**QwtPlotItem::Rtti\_PlotBarChart**

*Reimplemented from* **QwtPlotItem***.*

### void QwtPlotMultiBarChart::setBarTitles (const QList\< QwtText \> & titles)

*Set the titles for the bars. The titles are used for the legend.*

**Parameters:**

*titles Bar titles*

**See also:**

**barTitles()***,* **legendData()**

### void QwtPlotMultiBarChart::setSamples (const QVector\< QwtSetSample \> & samples)

*Initialize data with an array of samples.*

**Parameters:**

*samples Vector of points*

### void QwtPlotMultiBarChart::setSamples (const QVector\< QVector\< double \> \> & samples)

*Initialize data with an array of samples.*

**Parameters:**

*samples Vector of points*

### void QwtPlotMultiBarChart::setSamples (QwtSeriesData\< QwtSetSample \> \* data)

*Assign a series of samples*

**setSamples()** *is just a wrapper for* **setData()** *without any additional value - beside that it is easier to find for the developer.*

**Parameters:**

*data Data*

**Warning:**

*The item takes ownership of the data object, deleting it when its not used anymore.*

### void QwtPlotMultiBarChart::setStyle (ChartStyle style)

*Set the style of the chart*

**Parameters:**

*style Chart style*

**See also:**

**style()**

### void QwtPlotMultiBarChart::setSymbol (int valueIndex, QwtColumnSymbol \* symbol)

*Add a symbol to the symbol map. Assign a default symbol for drawing the bar representing all values with the same index in a set.*

**Parameters:**

*valueIndex Index of a value in a set* \
 *symbol Symbol used for drawing a bar*

**See also:**

**symbol()***,* **resetSymbolMap()***,* **specialSymbol()**

### QwtColumnSymbol \* QwtPlotMultiBarChart::specialSymbol (int sampleIndex, int valueIndex) const` [protected]`, ` [virtual]`

*Create a symbol for special values. Usually the symbols for displaying a bar are set by setSymbols() and common for all sets. By overloading* **specialSymbol()** *it is possible to create a temporary* **symbol()** *for displaying a special value.*

*The symbol has to be created by new each time* **specialSymbol()** *is called. As soon as the symbol is painted this symbol gets deleted.*

*When no symbol ( NULL ) is returned, the value will be displayed with the standard symbol that is used for all symbols with the same valueIndex.*

**Parameters:**

*sampleIndex Index of the sample* \
 *valueIndex Index of the value in the set*

**Returns:**

*NULL, meaning that the value is not special*

### QwtPlotMultiBarChart::ChartStyle QwtPlotMultiBarChart::style () const

**Returns:**

*Style of the chart*

**See also:**

**setStyle()**

### const QwtColumnSymbol \* QwtPlotMultiBarChart::symbol (int valueIndex) const

*Find a symbol in the symbol map*

**Parameters:**

*valueIndex Index of a value in a set*

**Returns:**

*The symbol, that had been set by* **setSymbol()** *or NULL.*

**See also:**

**setSymbol()***,* **specialSymbol()***,* **drawBar()**

### QwtColumnSymbol \* QwtPlotMultiBarChart::symbol (int valueIndex)` [protected]`

*Find a symbol in the symbol map*

**Parameters:**

*valueIndex Index of a value in a set*

**Returns:**

*The symbol, that had been set by* **setSymbol()** *or NULL.*

**See also:**

**setSymbol()***,* **specialSymbol()***,* **drawBar()**

## Author

*Generated automatically by Doxygen for Qwt User's Guide from the source code.*
