Qwt User's Guide  6.2.0
QwtPlotMultiBarChart Class Reference

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

#include <qwt_plot_multi_barchart.h>

Inheritance diagram for QwtPlotMultiBarChart:

Public Types

enum  ChartStyle { Grouped , Stacked }
 Chart styles. More...
 
- Public Types inherited from QwtPlotAbstractBarChart
enum  LayoutPolicy { AutoAdjustSamples , ScaleSamplesToAxes , ScaleSampleToCanvas , FixedSampleSize }
 Mode how to calculate the bar width. More...
 
- 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_PlotGraphic , Rtti_PlotTradingCurve ,
  Rtti_PlotBarChart , Rtti_PlotMultiBarChart , Rtti_PlotShape , Rtti_PlotTextLabel ,
  Rtti_PlotZone , Rtti_PlotVectorField , 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< ItemAttributeItemAttributes
 
typedef QFlags< ItemInterestItemInterests
 
typedef QFlags< RenderHintRenderHints
 

Public Member Functions

 QwtPlotMultiBarChart (const QString &title=QString())
 
 QwtPlotMultiBarChart (const QwtText &title)
 
virtual ~QwtPlotMultiBarChart ()
 Destructor.
 
virtual int rtti () const override
 
void setBarTitles (const QList< QwtText > &)
 Set the titles for the bars. More...
 
QList< QwtTextbarTitles () 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. More...
 
const QwtColumnSymbolsymbol (int valueIndex) const
 
void resetSymbolMap ()
 
virtual void drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const override
 
virtual QRectF boundingRect () const override
 
virtual QList< QwtLegendDatalegendData () const override
 
virtual QwtGraphic legendIcon (int index, const QSizeF &) const override
 
- Public Member Functions inherited from QwtPlotAbstractBarChart
 QwtPlotAbstractBarChart (const QwtText &title)
 
virtual ~QwtPlotAbstractBarChart ()
 Destructor.
 
void setLayoutPolicy (LayoutPolicy)
 
LayoutPolicy layoutPolicy () const
 
void setLayoutHint (double)
 
double layoutHint () const
 
void setSpacing (int)
 Set the spacing. More...
 
int spacing () const
 
void setMargin (int)
 Set the margin. More...
 
int margin () const
 
void setBaseline (double)
 Set the baseline. More...
 
double baseline () const
 
virtual void getCanvasMarginHint (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, double &left, double &top, double &right, double &bottom) const override
 Calculate a hint for the canvas margin. More...
 
- 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 &canvasRect) const override
 Draw the complete series. More...
 
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) override
 Update the item to changes of the axes scale division. More...
 
- Public Member Functions inherited from QwtPlotItem
 QwtPlotItem ()
 
 QwtPlotItem (const QString &title)
 
 QwtPlotItem (const QwtText &title)
 
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...
 
QwtPlotplot () const
 Return attached plot.
 
void setTitle (const QString &title)
 
void setTitle (const QwtText &title)
 
const QwtTexttitle () 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 (QwtAxisId xAxis, QwtAxisId yAxis)
 
void setXAxis (QwtAxisId)
 
QwtAxisId xAxis () const
 Return xAxis.
 
void setYAxis (QwtAxisId)
 
QwtAxisId yAxis () const
 Return yAxis.
 
virtual void itemChanged ()
 
virtual void legendChanged ()
 
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...
 
- Public Member Functions inherited from QwtAbstractSeriesStore
virtual ~QwtAbstractSeriesStore ()
 Destructor.
 
- Public Member Functions inherited from QwtSeriesStore< QwtSetSample >
 QwtSeriesStore ()
 Constructor The store contains no series.
 
 ~QwtSeriesStore ()
 Destructor.
 
void setData (QwtSeriesData< QwtSetSample > *series)
 
QwtSeriesData< QwtSetSample > * data ()
 
const QwtSeriesData< QwtSetSample > * data () const
 
QwtSetSample sample (int index) const
 
virtual size_t dataSize () const override
 
virtual QRectF dataRect () const override
 
virtual void setRectOfInterest (const QRectF &rect) override
 
QwtSeriesData< QwtSetSample > * swapData (QwtSeriesData< QwtSetSample > *series)
 

Protected Member Functions

QwtColumnSymbolsymbol (int valueIndex)
 
virtual QwtColumnSymbolspecialSymbol (int sampleIndex, int valueIndex) const
 Create a symbol for special values. More...
 
virtual void drawSample (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, const QwtInterval &boundingInterval, int index, const QwtSetSample &) const
 
virtual void drawBar (QPainter *, int sampleIndex, int valueIndex, const QwtColumnRect &) const
 
void drawStackedBars (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int index, double sampleWidth, const QwtSetSample &) const
 
void drawGroupedBars (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int index, double sampleWidth, const QwtSetSample &) const
 
- Protected Member Functions inherited from QwtPlotAbstractBarChart
double sampleWidth (const QwtScaleMap &map, double canvasSize, double boundingSize, double value) const
 
- Protected Member Functions inherited from QwtPlotSeriesItem
virtual void dataChanged () override
 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...
 

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

Definition at line 41 of file qwt_plot_multi_barchart.h.

Member Enumeration Documentation

◆ 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.

Definition at line 52 of file qwt_plot_multi_barchart.h.

Constructor & Destructor Documentation

◆ QwtPlotMultiBarChart() [1/2]

QwtPlotMultiBarChart::QwtPlotMultiBarChart ( const QString &  title = QString())
explicit

Constructor

Parameters
titleTitle of the chart

Definition at line 62 of file qwt_plot_multi_barchart.cpp.

◆ QwtPlotMultiBarChart() [2/2]

QwtPlotMultiBarChart::QwtPlotMultiBarChart ( const QwtText title)
explicit

Constructor

Parameters
titleTitle of the chart

Definition at line 52 of file qwt_plot_multi_barchart.cpp.

Member Function Documentation

◆ barTitles()

QList< QwtText > QwtPlotMultiBarChart::barTitles ( ) const
Returns
Bar titles
See also
setBarTitles(), legendData()

Definition at line 148 of file qwt_plot_multi_barchart.cpp.

◆ boundingRect()

QRectF QwtPlotMultiBarChart::boundingRect ( ) const
overridevirtual
Returns
Bounding rectangle of all samples. For an empty series the rectangle is invalid.

Reimplemented from QwtPlotSeriesItem.

Definition at line 302 of file qwt_plot_multi_barchart.cpp.

◆ drawBar()

void QwtPlotMultiBarChart::drawBar ( QPainter *  painter,
int  sampleIndex,
int  valueIndex,
const QwtColumnRect rect 
) const
protectedvirtual

Draw a bar

Parameters
painterPainter
sampleIndexIndex of the sample - might be -1 when the bar is painted for the legend
valueIndexIndex of a value in a set
rectDirected target rectangle for the bar
See also
drawSeries()

Definition at line 652 of file qwt_plot_multi_barchart.cpp.

◆ drawGroupedBars()

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
painterPainter
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
indexIndex of the sample to be painted
sampleWidthBounding width for all bars of the sample
sampleSample
See also
drawSeries(), sampleWidth()

Definition at line 461 of file qwt_plot_multi_barchart.cpp.

◆ drawSample()

void QwtPlotMultiBarChart::drawSample ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
const QwtInterval boundingInterval,
int  index,
const QwtSetSample sample 
) const
protectedvirtual

Draw a sample

Parameters
painterPainter
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
boundingIntervalBounding interval of sample values
indexIndex of the sample to be painted
sampleSample value
See also
drawSeries()

Definition at line 415 of file qwt_plot_multi_barchart.cpp.

◆ drawSeries()

void QwtPlotMultiBarChart::drawSeries ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect,
int  from,
int  to 
) const
overridevirtual

Draw an interval of the bar chart

Parameters
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rectangle of the canvas
fromIndex of the first point to be painted
toIndex of the last point to be painted. If to < 0 the curve will be painted to its last point.
See also
drawSymbols()

Implements QwtPlotSeriesItem.

Definition at line 374 of file qwt_plot_multi_barchart.cpp.

◆ drawStackedBars()

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
painterPainter
xMapx map
yMapy map
canvasRectContents rectangle of the canvas
indexIndex of the sample to be painted
sampleWidthWidth of the bars
sampleSample
See also
drawSeries(), sampleWidth()

Definition at line 541 of file qwt_plot_multi_barchart.cpp.

◆ legendData()

QList< QwtLegendData > QwtPlotMultiBarChart::legendData ( ) const
overridevirtual
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.

Definition at line 687 of file qwt_plot_multi_barchart.cpp.

◆ legendIcon()

QwtGraphic QwtPlotMultiBarChart::legendIcon ( int  index,
const QSizeF &  size 
) const
overridevirtual
Returns
Icon for representing a bar on the legend
Parameters
indexIndex of the bar
sizeIcon size
Returns
An icon showing a bar
See also
drawBar(), legendData()

Reimplemented from QwtPlotItem.

Definition at line 720 of file qwt_plot_multi_barchart.cpp.

◆ resetSymbolMap()

void QwtPlotMultiBarChart::resetSymbolMap ( )

Remove all symbols from the symbol map

Definition at line 237 of file qwt_plot_multi_barchart.cpp.

◆ rtti()

int QwtPlotMultiBarChart::rtti ( ) const
overridevirtual
Returns
QwtPlotItem::Rtti_PlotBarChart

Reimplemented from QwtPlotItem.

Definition at line 82 of file qwt_plot_multi_barchart.cpp.

◆ setBarTitles()

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

Set the titles for the bars.

The titles are used for the legend.

Parameters
titlesBar titles
See also
barTitles(), legendData()

Definition at line 138 of file qwt_plot_multi_barchart.cpp.

◆ setSamples() [1/3]

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

Initialize data with an array of samples.

Parameters
samplesVector of points

Definition at line 101 of file qwt_plot_multi_barchart.cpp.

◆ setSamples() [2/3]

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

Initialize data with an array of samples.

Parameters
samplesVector of points

Definition at line 91 of file qwt_plot_multi_barchart.cpp.

◆ setSamples() [3/3]

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
dataData
Warning
The item takes ownership of the data object, deleting it when its not used anymore.

Definition at line 123 of file qwt_plot_multi_barchart.cpp.

◆ setStyle()

void QwtPlotMultiBarChart::setStyle ( ChartStyle  style)

Set the style of the chart

Parameters
styleChart style
See also
style()

Definition at line 278 of file qwt_plot_multi_barchart.cpp.

◆ setSymbol()

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
valueIndexIndex of a value in a set
symbolSymbol used for drawing a bar
See also
symbol(), resetSymbolMap(), specialSymbol()

Definition at line 164 of file qwt_plot_multi_barchart.cpp.

◆ specialSymbol()

QwtColumnSymbol * QwtPlotMultiBarChart::specialSymbol ( int  sampleIndex,
int  valueIndex 
) const
protectedvirtual

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
sampleIndexIndex of the sample
valueIndexIndex of the value in the set
Returns
NULL, meaning that the value is not special

Definition at line 263 of file qwt_plot_multi_barchart.cpp.

◆ style()

QwtPlotMultiBarChart::ChartStyle QwtPlotMultiBarChart::style ( ) const
Returns
Style of the chart
See also
setStyle()

Definition at line 293 of file qwt_plot_multi_barchart.cpp.

◆ symbol() [1/2]

QwtColumnSymbol * QwtPlotMultiBarChart::symbol ( int  valueIndex)
protected

Find a symbol in the symbol map

Parameters
valueIndexIndex of a value in a set
Returns
The symbol, that had been set by setSymbol() or NULL.
See also
setSymbol(), specialSymbol(), drawBar()

Definition at line 226 of file qwt_plot_multi_barchart.cpp.

◆ symbol() [2/2]

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

Find a symbol in the symbol map

Parameters
valueIndexIndex of a value in a set
Returns
The symbol, that had been set by setSymbol() or NULL.
See also
setSymbol(), specialSymbol(), drawBar()

Definition at line 210 of file qwt_plot_multi_barchart.cpp.