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

# QwtPlotHistogram(3)

QwtPlotHistogram represents a series of samples, where an interval is associated with a value ( $y = f(\[x1,x2\])$ ).

## NAME

QwtPlotHistogram - **QwtPlotHistogram** represents a series of samples, where an interval is associated with a value ( $y = f(\[x1,x2\])$ ).

## SYNOPSIS

`#include <qwt_plot_histogram.h>`

Inherits **QwtPlotSeriesItem**, and **QwtSeriesStore\< QwtIntervalSample \>**.

### Public Types

enum **HistogramStyle** { **Outline**, **Columns**, **Lines**, **UserStyle** = 100 }\

### Public Member Functions

**QwtPlotHistogram** (const QString &**title**=QString())\
 **QwtPlotHistogram** (const **QwtText** &**title**)\
 virtual **~QwtPlotHistogram** ()\
 Destructor.  virtual int **rtti** () const\
 void **setPen** (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)\
 void **setPen** (const QPen &)\
 const QPen & **pen** () const\
 void **setBrush** (const QBrush &)\
 const QBrush & **brush** () const\
 void **setSamples** (const QVector\< **QwtIntervalSample** \> &)\
 void **setSamples** (**QwtSeriesData**\< **QwtIntervalSample** \> \*)\
 void **setBaseline** (double)\
 Set the value of the baseline.  double **baseline** () const\
 void **setStyle** (**HistogramStyle** **style**)\
 **HistogramStyle** **style** () const\
 void **setSymbol** (const **QwtColumnSymbol** \*)\
 Assign a symbol.  const **QwtColumnSymbol** \* **symbol** () const\
 virtual void **drawSeries** (QPainter \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect, int from, int to) const\
 virtual QRectF **boundingRect** () const\
 virtual **QwtGraphic** **legendIcon** (int index, const QSizeF &) const\

### Protected Member Functions

virtual **QwtColumnRect** **columnRect** (const **QwtIntervalSample** &, const **QwtScaleMap** &, const **QwtScaleMap** &) const\
 virtual void **drawColumn** (QPainter \*, const **QwtColumnRect** &, const **QwtIntervalSample** &) const\
 void **drawColumns** (QPainter \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, int from, int to) const\
 void **drawOutline** (QPainter \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, int from, int to) const\
 void **drawLines** (QPainter \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, int from, int to) const\

## Detailed Description

**QwtPlotHistogram** represents a series of samples, where an interval is associated with a value ( $y = f(\[x1,x2\])$ ).

The representation depends on the **style()** and an optional **symbol()** that is displayed for each interval.

**Note:**

The term 'histogram' is used in a different way in the areas of digital image processing and statistics. Wikipedia introduces the terms 'image histogram' and 'color histogram' to avoid confusions. While 'image histograms' can be displayed by a **QwtPlotCurve** there is no applicable plot item for a 'color histogram' yet.

**See also:**

**QwtPlotBarChart**, **QwtPlotMultiBarChart**

## Member Enumeration Documentation

### enum QwtPlotHistogram::HistogramStyle

Histogram styles. The default style is **QwtPlotHistogram::Columns**.

**See also:**

**setStyle()**, **style()**, **setSymbol()**, **symbol()**, **setBaseline()**

**Enumerator**

- *Outline*

  *Draw an outline around the area, that is build by all intervals using the* **pen()** *and fill it with the* **brush()***. The outline style requires, that the intervals are in increasing order and not overlapping.*

- *Columns*

  *Draw a column for each interval. When a* **symbol()** *has been set the symbol is used otherwise the column is displayed as plain rectangle using* **pen()** *and* **brush()***.*

- *Lines*

  *Draw a simple line using the* **pen()** *for each interval.*

- *UserStyle*

  *Styles \>= UserStyle are reserved for derived classes that overload* **drawSeries()** *with additional application specific ways to display a histogram.*

## Constructor & Destructor Documentation

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

*Constructor*

**Parameters:**

*title Title of the histogram.*

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

*Constructor*

**Parameters:**

*title Title of the histogram.*

## Member Function Documentation

### double QwtPlotHistogram::baseline () const

**Returns:**

*Value of the baseline*

**See also:**

**setBaseline()**

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

**Returns:**

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

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

### const QBrush & QwtPlotHistogram::brush () const

**Returns:**

*Brush used in a* **style()** *depending way.*

**See also:**

**setPen()***,* **brush()**

### QwtColumnRect QwtPlotHistogram::columnRect (const QwtIntervalSample & sample, const QwtScaleMap & xMap, const QwtScaleMap & yMap) const` [protected]`, ` [virtual]`

*Calculate the area that is covered by a sample*

**Parameters:**

*sample Sample* \
 *xMap Maps x-values into pixel coordinates.* \
 *yMap Maps y-values into pixel coordinates.*

**Returns:**

*Rectangle, that is covered by a sample*

### void QwtPlotHistogram::drawColumn (QPainter \* painter, const QwtColumnRect & rect, const QwtIntervalSample & sample) const` [protected]`, ` [virtual]`

*Draw a column for a sample in Columns* **style()***.*

*When a* **symbol()** *has been set the symbol is used otherwise the column is displayed as plain rectangle using* **pen()** *and* **brush()***.*

**Parameters:**

*painter Painter* \
 *rect Rectangle where to paint the column in paint device coordinates* \
 *sample Sample to be displayed*

**Note:**

*In applications, where different intervals need to be displayed in a different way ( f.e different colors or even using different symbols) it is recommended to overload* **drawColumn()***.*

### void QwtPlotHistogram::drawColumns (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, int from, int to) const` [protected]`

*Draw a histogram in Columns* **style()**

**Parameters:**

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

**See also:**

**setStyle()***,* **style()***,* **setSymbol()***,* **drawColumn()**

### void QwtPlotHistogram::drawLines (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, int from, int to) const` [protected]`

*Draw a histogram in Lines* **style()**

**Parameters:**

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

**See also:**

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

### void QwtPlotHistogram::drawOutline (QPainter \* painter, const QwtScaleMap & xMap, const QwtScaleMap & yMap, int from, int to) const` [protected]`

*Draw a histogram in Outline* **style()**

**Parameters:**

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

**See also:**

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

**Warning:**

*The outline style requires, that the intervals are in increasing order and not overlapping.*

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

*Draw a subset of the histogram samples*

**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 sample to be painted* \
 *to Index of the last sample to be painted. If to \< 0 the series will be painted to its last sample.*

**See also:**

**drawOutline()***,* **drawLines()***,* **drawColumns**

*Implements* **QwtPlotSeriesItem***.*

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

*A plain rectangle without pen using the* **brush()**

**Parameters:**

*index Index of the legend entry ( ignored as there is only one )* \
 *size Icon size*

**Returns:**

*A graphic displaying the icon*

**See also:**

**QwtPlotItem::setLegendIconSize()***,* **QwtPlotItem::legendData()**

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

### const QPen & QwtPlotHistogram::pen () const

**Returns:**

*Pen used in a* **style()** *depending way.*

**See also:**

**setPen()***,* **brush()**

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

**Returns:**

**QwtPlotItem::Rtti\_PlotHistogram**

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

### void QwtPlotHistogram::setBaseline (double value)

*Set the value of the baseline. Each column representing an* **QwtIntervalSample** *is defined by its interval and the interval between baseline and the value of the sample.*

*The default value of the baseline is 0.0.*

**Parameters:**

*value Value of the baseline*

**See also:**

**baseline()**

### void QwtPlotHistogram::setBrush (const QBrush & brush)

*Assign a brush, that is used in a* **style()** *depending way.*

**Parameters:**

*brush New brush*

**See also:**

**pen()***,* **brush()**

### void QwtPlotHistogram::setPen (const QColor & color, qreal width = `0.0`, Qt::PenStyle style = `Qt::SolidLine`)

*Build and assign a pen*

*In Qt5 the default pen width is 1.0 ( 0.0 in Qt4 ) what makes it non cosmetic ( see QPen::isCosmetic() ). This method has been introduced to hide this incompatibility.*

**Parameters:**

*color Pen color* \
 *width Pen width* \
 *style Pen style*

**See also:**

**pen()***,* **brush()**

### void QwtPlotHistogram::setPen (const QPen & pen)

*Assign a pen, that is used in a* **style()** *depending way.*

**Parameters:**

*pen New pen*

**See also:**

**pen()***,* **brush()**

### void QwtPlotHistogram::setSamples (const QVector\< QwtIntervalSample \> & samples)

*Initialize data with an array of samples.*

**Parameters:**

*samples Vector of points*

### void QwtPlotHistogram::setSamples (QwtSeriesData\< QwtIntervalSample \> \* 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 QwtPlotHistogram::setStyle (HistogramStyle style)

*Set the histogram's drawing style*

**Parameters:**

*style Histogram style*

**See also:**

**HistogramStyle***,* **style()**

### void QwtPlotHistogram::setSymbol (const QwtColumnSymbol \* symbol)

*Assign a symbol. In Column style an optional symbol can be assigned, that is responsible for displaying the rectangle that is defined by the interval and the distance between* **baseline()** *and value. When no symbol has been defined the area is displayed as plain rectangle using* **pen()** *and* **brush()***.*

**See also:**

**style()***,* **symbol()***,* **drawColumn()***,* **pen()***,* **brush()**

**Note:**

*In applications, where different intervals need to be displayed in a different way ( f.e different colors or even using different symbols) it is recommended to overload* **drawColumn()***.*

### QwtPlotHistogram::HistogramStyle QwtPlotHistogram::style () const

**Returns:**

*Style of the histogram*

**See also:**

**HistogramStyle***,* **setStyle()**

### const QwtColumnSymbol \* QwtPlotHistogram::symbol () const

**Returns:**

*Current symbol or NULL, when no symbol has been assigned*

**See also:**

**setSymbol()**

## Author

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