QwtPlotHistogram Class Reference

QwtPlotHistogram represents a series of samples, where an interval is associated with a value ( ). More...

`#include <qwt_plot_histogram.h>`

Inheritance diagram for QwtPlotHistogram:
[legend]

## Public Types

enum | HistogramStyle { Outline, Columns, Lines, UserStyle = 100 }
Public Types inherited from QwtPlotItem
enum | RttiValues { Rtti_PlotItem = 0, Rtti_PlotGrid, Rtti_PlotScale, Rtti_PlotLegend, Rtti_PlotMarker, Rtti_PlotCurve, Rtti_PlotSpectroCurve, Rtti_PlotIntervalCurve, Rtti_PlotHistogram, Rtti_PlotSpectrogram, Rtti_PlotSVG, Rtti_PlotTradingCurve, Rtti_PlotBarChart, Rtti_PlotMultiBarChart, Rtti_PlotShape, Rtti_PlotTextLabel, Rtti_PlotZone, Rtti_PlotUserItem = 1000 }
| Runtime type information. More...
enum | ItemAttribute { Legend = 0x01, AutoScale = 0x02, Margins = 0x04 }
| Plot Item Attributes. More...
enum | ItemInterest { ScaleInterest = 0x01, LegendInterest = 0x02 }
| Plot Item Interests. More...
enum | RenderHint { RenderAntialiased = 0x1 }
| Render hints. More...
typedef QFlags< ItemAttribute > | ItemAttributes
| Plot Item Attributes.
typedef QFlags< ItemInterest > | ItemInterests
| Plot Item Interests.
typedef QFlags< RenderHint > | RenderHints
| Render hints.

## 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. More...
double | baseline () const
void | setStyle (HistogramStyle style)
HistogramStyle | style () const
void | setSymbol (const QwtColumnSymbol *)
| Assign a symbol. More...
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
Public Member Functions inherited from QwtPlotSeriesItem
| QwtPlotSeriesItem (const QString &title=QString())
| QwtPlotSeriesItem (const QwtText &title)
virtual | ~QwtPlotSeriesItem ()
| Destructor.
void | setOrientation (Qt::Orientation)
Qt::Orientation | orientation () const
virtual void | draw (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &) const
| Draw the complete series. More...
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
| Update the item to changes of the axes scale division. More...
Public Member Functions inherited from QwtPlotItem
| QwtPlotItem (const QwtText &title=QwtText())
virtual | ~QwtPlotItem ()
| Destroy the QwtPlotItem.
void | attach (QwtPlot *plot)
| Attach the item to a plot. More...
void | detach ()
| This method detaches a QwtPlotItem from any QwtPlot it has been associated with. More...
QwtPlot * | plot () const
| Return attached plot.
void | setTitle (const QString &title)
void | setTitle (const QwtText &title)
const QwtText & | title () const
void | setItemAttribute (ItemAttribute, bool on=true)
bool | testItemAttribute (ItemAttribute) const
void | setItemInterest (ItemInterest, bool on=true)
bool | testItemInterest (ItemInterest) const
void | setRenderHint (RenderHint, bool on=true)
bool | testRenderHint (RenderHint) const
void | setRenderThreadCount (uint numThreads)
uint | renderThreadCount () const
void | setLegendIconSize (const QSize &)
QSize | legendIconSize () const
double | z () const
void | setZ (double z)
| Set the z value. More...
void | show ()
| Show the item.
void | hide ()
| Hide the item.
virtual void | setVisible (bool)
bool | isVisible () const
void | setAxes (int xAxis, int yAxis)
void | setXAxis (int axis)
int | xAxis () const
| Return xAxis.
void | setYAxis (int axis)
int | yAxis () const
| Return yAxis.
virtual void | itemChanged ()
virtual void | legendChanged ()
virtual void | getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const
| Calculate a hint for the canvas margin. More...
virtual void | updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &)
| Update the item to changes of the legend info. More...
QRectF | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding scale rectangle of 2 maps. More...
QRectF | paintRect (const QwtScaleMap &, const QwtScaleMap &) const
| Calculate the bounding paint rectangle of 2 maps. More...
virtual QList< QwtLegendData > | legendData () const
| Return all information, that is needed to represent the item on the legend. More...
Public Member Functions inherited from QwtSeriesStore< QwtIntervalSample >
| QwtSeriesStore ()
| Constructor The store contains no series.
| ~QwtSeriesStore ()
| Destructor.
void | setData (QwtSeriesData< QwtIntervalSample > *series)
QwtSeriesData< QwtIntervalSample > * | data ()
const QwtSeriesData< QwtIntervalSample > * | data () const
QwtIntervalSample | sample (int index) const
virtual size_t | dataSize () const
virtual QRectF | dataRect () const
virtual void | setRectOfInterest (const QRectF &rect)
QwtSeriesData< QwtIntervalSample > * | swapData (QwtSeriesData< QwtIntervalSample > *series)

## 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
Protected Member Functions inherited from QwtPlotSeriesItem
virtual void | dataChanged ()
| dataChanged() indicates, that the series has been changed.
Protected Member Functions inherited from QwtPlotItem
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const
| Return a default icon from a brush. More...
Protected Member Functions inherited from QwtAbstractSeriesStore
virtual | ~QwtAbstractSeriesStore ()
| Destructor.

## Detailed Description

QwtPlotHistogram represents a series of samples, where an interval is associated with a value ( ).

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

## HistogramStyle

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() [1/2]

QwtPlotHistogram::QwtPlotHistogram | ( | const QString & | title = `QString()` | ) |

explicit

Constructor

Parameters

  title | Title of the histogram.

## QwtPlotHistogram() [2/2]

QwtPlotHistogram::QwtPlotHistogram | ( | const QwtText & | title | ) |

explicit

Constructor

Parameters

  title | Title of the histogram.

## Member Function Documentation

## baseline()

double QwtPlotHistogram::baseline | ( |  | ) | const

Returns
  Value of the baseline

See also
  setBaseline()

## boundingRect()

QRectF QwtPlotHistogram::boundingRect | ( |  | ) | const

virtual

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

Reimplemented from QwtPlotSeriesItem.

## brush()

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

Returns
  Brush used in a style() depending way.

See also
  setPen(), brush()

## columnRect()

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

## drawColumn()

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().

## drawColumns()

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()

## drawLines()

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()

## drawOutline()

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.

## drawSeries()

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.

## legendIcon()

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.

## pen()

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

Returns
  Pen used in a style() depending way.

See also
  setPen(), brush()

## rtti()

int QwtPlotHistogram::rtti | ( |  | ) | const

virtual

Returns
  QwtPlotItem::Rtti_PlotHistogram

Reimplemented from QwtPlotItem.

## setBaseline()

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()

## setBrush()

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()

## setPen() [1/2]

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()

## setPen() [2/2]

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()

## setSamples() [1/2]

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

Initialize data with an array of samples.

Parameters

  samples | Vector of points

## setSamples() [2/2]

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.

## setStyle()

void QwtPlotHistogram::setStyle | ( | HistogramStyle | style | ) |

Set the histogram's drawing style

Parameters

  style | Histogram style

See also
  HistogramStyle, style()

## setSymbol()

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().

## style()

QwtPlotHistogram::HistogramStyle QwtPlotHistogram::style | ( |  | ) | const

Returns
  Style of the histogram

See also
  HistogramStyle, setStyle()

## symbol()

const QwtColumnSymbol * QwtPlotHistogram::symbol | ( |  | ) | const

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

See also
  setSymbol()