Qwt User's Guide svn
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
QwtPlotHistogram Class Reference

#include <qwt_plot_histogram.h>

Inherits QwtPlotSeriesItem< QwtIntervalSample >.

List of all members.

Public Types

enum  HistogramStyle {
  Outline,
  Columns,
  Lines,
  UserStyle = 100
}
enum  ItemAttribute {
  Legend = 0x01,
  AutoScale = 0x02
}
typedef QFlags< ItemAttributeItemAttributes
enum  RenderHint { RenderAntialiased = 1 }
typedef QFlags< RenderHintRenderHints
enum  RttiValues {
  Rtti_PlotItem = 0,
  Rtti_PlotGrid,
  Rtti_PlotScale,
  Rtti_PlotMarker,
  Rtti_PlotCurve,
  Rtti_PlotSpectroCurve,
  Rtti_PlotIntervalCurve,
  Rtti_PlotHistogram,
  Rtti_PlotSpectrogram,
  Rtti_PlotSVG,
  Rtti_PlotUserItem = 1000
}

Public Member Functions

void attach (QwtPlot *plot)
double baseline () const
virtual QRectF boundingRect () const
const QBrush & brush () const
QwtSeriesData
< QwtIntervalSample > * 
data ()
const QwtSeriesData
< QwtIntervalSample > * 
data () const
size_t dataSize () const
void detach ()
virtual void draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &) const
virtual void drawLegendIdentifier (QPainter *, const QRectF &) const
virtual void drawSeries (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const
void hide ()
bool isVisible () const
virtual void itemChanged ()
virtual QWidget * legendItem () const
Qt::Orientation orientation () const
QRectF paintRect (const QwtScaleMap &, const QwtScaleMap &) const
const QPen & pen () const
QwtPlotplot () const
 QwtPlotHistogram (const QString &title=QString::null)
 QwtPlotHistogram (const QwtText &title)
virtual int rtti () const
QwtIntervalSample sample (int index) const
QRectF scaleRect (const QwtScaleMap &, const QwtScaleMap &) const
void setAxes (int xAxis, int yAxis)
void setBaseline (double reference)
void setBrush (const QBrush &)
void setData (QwtSeriesData< QwtIntervalSample > *)
void setItemAttribute (ItemAttribute, bool on=true)
void setOrientation (Qt::Orientation)
void setPen (const QPen &)
void setRenderHint (RenderHint, bool on=true)
void setSamples (const QVector< QwtIntervalSample > &)
void setStyle (HistogramStyle style)
void setSymbol (const QwtColumnSymbol *)
void setTitle (const QString &title)
void setTitle (const QwtText &title)
virtual void setVisible (bool)
void setXAxis (int axis)
void setYAxis (int axis)
void setZ (double z)
void show ()
HistogramStyle style () const
const QwtColumnSymbolsymbol () const
bool testItemAttribute (ItemAttribute) const
bool testRenderHint (RenderHint) const
const QwtTexttitle () const
virtual void updateLegend (QwtLegend *) const
virtual void updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
int xAxis () const
int yAxis () const
double z () const
virtual ~QwtPlotHistogram ()

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

Protected Attributes

QwtSeriesData
< QwtIntervalSample > * 
d_series

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.

Member Typedef Documentation

typedef QFlags<ItemAttribute> QwtPlotItem::ItemAttributes [inherited]

Plot Item Attributes.

typedef QFlags<RenderHint> QwtPlotItem::RenderHints [inherited]

Render hints.


Member Enumeration Documentation

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.

enum QwtPlotItem::ItemAttribute [inherited]

Plot Item Attributes

See also:
setItemAttribute(), testItemAttribute()
Enumerator:
Legend 

The item is represented on the legend.

AutoScale 

The boundingRect() of the item is included in the autoscaling calculation.

enum QwtPlotItem::RenderHint [inherited]

Render hints.

Enumerator:
RenderAntialiased 

Enable antialiasing.

enum QwtPlotItem::RttiValues [inherited]

Runtime type information.

RttiValues is used to cast plot items, without having to enable runtime type information of the compiler.

Enumerator:
Rtti_PlotItem 

Unspecific value, that can be used, when it doesn't matter.

Rtti_PlotGrid 

For QwtPlotGrid.

Rtti_PlotScale 

For QwtPlotScaleItem.

Rtti_PlotMarker 

For QwtPlotMarker.

Rtti_PlotCurve 

For QwtPlotCurve.

Rtti_PlotSpectroCurve 

For QwtPlotSpectroCurve.

Rtti_PlotIntervalCurve 

For QwtPlotIntervalCurve.

Rtti_PlotHistogram 

For QwtPlotHistogram.

Rtti_PlotSpectrogram 

For QwtPlotSpectrogram.

Rtti_PlotSVG 

For QwtPlotSvgItem.

Rtti_PlotUserItem 

Values >= Rtti_PlotUserItem are reserved for plot items not implemented in the Qwt library.


Constructor & Destructor Documentation

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

Constructor

Parameters:
titleTitle of the histogram.
QwtPlotHistogram::QwtPlotHistogram ( const QwtText title) [explicit]

Constructor

Parameters:
titleTitle of the histogram.
QwtPlotHistogram::~QwtPlotHistogram ( ) [virtual]

Destructor.


Member Function Documentation

void QwtPlotItem::attach ( QwtPlot plot) [inherited]

Attach the item to a plot.

This method will attach a QwtPlotItem to the QwtPlot argument. It will first detach the QwtPlotItem from any plot from a previous call to attach (if necessary). If a NULL argument is passed, it will detach from any QwtPlot it was attached to.

Parameters:
plotPlot widget
See also:
detach()
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< QwtIntervalSample >.

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:
sampleSample
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
Returns:
Rectangle, that is covered by a sample
void QwtPlotItem::detach ( ) [inherited]

This method detaches a QwtPlotItem from any QwtPlot it has been associated with.

detach() is equivalent to calling attach( NULL )

See also:
attach()
void QwtPlotAbstractSeriesItem::draw ( QPainter *  painter,
const QwtScaleMap xMap,
const QwtScaleMap yMap,
const QRectF &  canvasRect 
) const [virtual, inherited]

Draw the complete series.

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rect of the canvas

Implements QwtPlotItem.

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:
painterPainter
rectRectangle where to paint the column in paint device coordinates
sampleSample to be displayed
Note:
In applications, where different intervals need to be displayed in a different way ( f.e different colors or even using differnt 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:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
fromIndex of the first sample to be painted
toIndex 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::drawLegendIdentifier ( QPainter *  painter,
const QRectF &  rect 
) const [virtual]

Draw a plain rectangle without pen using the brush() as identifier

Parameters:
painterPainter
rectBounding rectangle for the identifier

Reimplemented from QwtLegendItemManager.

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

Draw a histogram in Lines style()

Parameters:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
fromIndex of the first sample to be painted
toIndex 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:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
fromIndex of the first sample to be painted
toIndex 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:
painterPainter
xMapMaps x-values into pixel coordinates.
yMapMaps y-values into pixel coordinates.
canvasRectContents rect of the canvas
fromIndex of the first sample to be painted
toIndex 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 QwtPlotAbstractSeriesItem.

void QwtPlotItem::hide ( ) [inherited]

Hide the item.

bool QwtPlotItem::isVisible ( ) const [inherited]
Returns:
true if visible
See also:
setVisible(), show(), hide()
void QwtPlotItem::itemChanged ( ) [virtual, inherited]

Update the legend and call QwtPlot::autoRefresh for the parent plot.

See also:
updateLegend()
QWidget * QwtPlotItem::legendItem ( ) const [virtual, inherited]

Allocate the widget that represents the item on the legend.

The default implementation returns a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend().

Returns:
QwtLegendItem()
See also:
updateLegend() QwtLegend()

Implements QwtLegendItemManager.

Qt::Orientation QwtPlotAbstractSeriesItem::orientation ( ) const [inherited]
Returns:
Orientation of the plot item
See also:
setOrientation()
QRectF QwtPlotItem::paintRect ( const QwtScaleMap xMap,
const QwtScaleMap yMap 
) const [inherited]

Calculate the bounding paint rect of 2 maps.

Parameters:
xMapX map
yMapX map
Returns:
Bounding paint rect of the scale maps, normalized
const QPen & QwtPlotHistogram::pen ( ) const
Returns:
Pen used in a style() depending way.
See also:
setPen(), brush()
QwtPlot * QwtPlotItem::plot ( ) const [inherited]

Return attached plot.

int QwtPlotHistogram::rtti ( ) const [virtual]
Returns:
QwtPlotItem::Rtti_PlotHistogram

Reimplemented from QwtPlotItem.

QRectF QwtPlotItem::scaleRect ( const QwtScaleMap xMap,
const QwtScaleMap yMap 
) const [inherited]

Calculate the bounding scale rect of 2 maps.

Parameters:
xMapX map
yMapX map
Returns:
Bounding scale rect of the scale maps, normalized
void QwtPlotItem::setAxes ( int  xAxis,
int  yAxis 
) [inherited]

Set X and Y axis

The item will painted according to the coordinates its Axes.

Parameters:
xAxisX Axis
yAxisY Axis
See also:
setXAxis(), setYAxis(), xAxis(), yAxis()
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:
valueValue of the baseline
See also:
baseline()
void QwtPlotHistogram::setBrush ( const QBrush &  brush)

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

Parameters:
brushNew brush
See also:
pen(), brush()
void QwtPlotItem::setItemAttribute ( ItemAttribute  attribute,
bool  on = true 
) [inherited]

Toggle an item attribute

Parameters:
attributeAttribute type
ontrue/false
See also:
testItemAttribute(), ItemAttribute
void QwtPlotAbstractSeriesItem::setOrientation ( Qt::Orientation  orientation) [inherited]

Set the orientation of the item.

The orientation() might be used in specific way by a plot item. F.e. a QwtPlotCurve uses it to identify how to display the curve int QwtPlotCurve::Steps or QwtPlotCurve::Sticks style.

See also:
orientation()
void QwtPlotHistogram::setPen ( const QPen &  pen)

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

Parameters:
penNew pen
See also:
pen(), brush()
void QwtPlotItem::setRenderHint ( RenderHint  hint,
bool  on = true 
) [inherited]

Toggle an render hint

Parameters:
hintRender hint
ontrue/false
See also:
testRenderHint(), RenderHint
void QwtPlotHistogram::setSamples ( const QVector< QwtIntervalSample > &  samples)

Initialize data with an array of samples.

Parameters:
samplesVector of points
void QwtPlotHistogram::setStyle ( HistogramStyle  style)

Set the histogram's drawing style

Parameters:
styleHistogram 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 differnt symbols) it is recommended to overload drawColumn().
void QwtPlotItem::setTitle ( const QString &  title) [inherited]

Set a new title

Parameters:
titleTitle
See also:
title()
void QwtPlotItem::setTitle ( const QwtText title) [inherited]

Set a new title

Parameters:
titleTitle
See also:
title()
void QwtPlotItem::setVisible ( bool  on) [virtual, inherited]

Show/Hide the item

Parameters:
onShow if true, otherwise hide
See also:
isVisible(), show(), hide()
void QwtPlotItem::setXAxis ( int  axis) [inherited]

Set the X axis

The item will painted according to the coordinates its Axes.

Parameters:
axisX Axis
See also:
setAxes(), setYAxis(), xAxis()
void QwtPlotItem::setYAxis ( int  axis) [inherited]

Set the Y axis

The item will painted according to the coordinates its Axes.

Parameters:
axisY Axis
See also:
setAxes(), setXAxis(), yAxis()
void QwtPlotItem::setZ ( double  z) [inherited]

Set the z value.

Plot items are painted in increasing z-order.

Parameters:
zZ-value
See also:
z(), QwtPlotDict::itemList()
void QwtPlotItem::show ( ) [inherited]

Show the item.

QwtPlotHistogram::HistogramStyle QwtPlotHistogram::style ( ) const

Return the current style

See also:
HistogramStyle, setStyle()
const QwtColumnSymbol * QwtPlotHistogram::symbol ( ) const
Returns:
Current symbol or NULL, when no symbol has been assigned
See also:
setSymbol()
bool QwtPlotItem::testItemAttribute ( ItemAttribute  attribute) const [inherited]

Test an item attribute

Parameters:
attributeAttribute type
Returns:
true/false
See also:
setItemAttribute(), ItemAttribute
bool QwtPlotItem::testRenderHint ( RenderHint  hint) const [inherited]

Test a render hint

Parameters:
hintRender hint
Returns:
true/false
See also:
setRenderHint(), RenderHint
const QwtText & QwtPlotItem::title ( ) const [inherited]
Returns:
Title of the item
See also:
setTitle()
void QwtPlotItem::updateLegend ( QwtLegend legend) const [virtual, inherited]

Update the widget that represents the item on the legend.

updateLegend() is called from itemChanged() to adopt the widget representing the item on the legend to its new configuration.

The default implementation updates a QwtLegendItem(), but an item could be represented by any type of widget, by overloading legendItem() and updateLegend().

Parameters:
legendLegend
See also:
legendItem(), itemChanged(), QwtLegend()

Implements QwtLegendItemManager.

Reimplemented in QwtPlotCurve, and QwtPlotMarker.

virtual void QwtPlotSeriesItem< QwtIntervalSample >::updateScaleDiv ( const QwtScaleDiv xScaleDiv,
const QwtScaleDiv yScaleDiv 
) [virtual, inherited]

Update the rect of interest according to the current scale ranges

Parameters:
xScaleDivScale division of the x-axis
yScaleDivScale division of the y-axis
See also:
QwtSeriesData<T>::setRectOfInterest()

Reimplemented from QwtPlotItem.

int QwtPlotItem::xAxis ( ) const [inherited]

Return xAxis.

int QwtPlotItem::yAxis ( ) const [inherited]

Return yAxis.

double QwtPlotItem::z ( ) const [inherited]

Plot items are painted in increasing z-order.

Returns:
setZ(), QwtPlotDict::itemList()

Member Data Documentation

Series.

qmi style