QwtPlotSpectrogram Class Reference

A plot item, which displays a spectrogram. More...

`#include <qwt_plot_spectrogram.h>`

Inheritance diagram for QwtPlotSpectrogram:
[legend]

## Public Types

enum | DisplayMode { ImageMode = 0x01, ContourMode = 0x02 }
typedef QFlags< DisplayMode > | DisplayModes
| Display modes.
Public Types inherited from QwtPlotRasterItem
enum | CachePolicy { NoCache, PaintCache }
| Cache policy The default policy is NoCache. More...
enum | PaintAttribute { PaintInDeviceResolution = 1 }
typedef QFlags< PaintAttribute > | PaintAttributes
| Paint attributes.
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

| QwtPlotSpectrogram (const QString &title=QString::null)
virtual | ~QwtPlotSpectrogram ()
| Destructor.
void | setDisplayMode (DisplayMode, bool on=true)
bool | testDisplayMode (DisplayMode) const
void | setData (QwtRasterData *data)
const QwtRasterData * | data () const
QwtRasterData * | data ()
void | setColorMap (QwtColorMap *)
const QwtColorMap * | colorMap () const
virtual QwtInterval | interval (Qt::Axis) const
virtual QRectF | pixelHint (const QRectF &) const
| Pixel hint. More...
void | setDefaultContourPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)
void | setDefaultContourPen (const QPen &)
| Set the default pen for the contour lines. More...
QPen | defaultContourPen () const
virtual QPen | contourPen (double level) const
| Calculate the pen for a contour line. More...
void | setConrecFlag (QwtRasterData::ConrecFlag, bool on)
bool | testConrecFlag (QwtRasterData::ConrecFlag) const
void | setContourLevels (const QList< double > &)
QList< double > | contourLevels () const
virtual int | rtti () const
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &rect) const
| Draw the spectrogram. More...
Public Member Functions inherited from QwtPlotRasterItem
| QwtPlotRasterItem (const QString &title=QString::null)
| Constructor.
| QwtPlotRasterItem (const QwtText &title)
| Constructor.
virtual | ~QwtPlotRasterItem ()
| Destructor.
void | setPaintAttribute (PaintAttribute, bool on=true)
bool | testPaintAttribute (PaintAttribute) const
void | setAlpha (int alpha)
| Set an alpha value for the raster data. More...
int | alpha () const
void | setCachePolicy (CachePolicy)
CachePolicy | cachePolicy () const
void | invalidateCache ()
virtual QRectF | boundingRect () const
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 &canvasSize, double &left, double &top, double &right, double &bottom) const
| Calculate a hint for the canvas margin. More...
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &)
| Update the item to changes of the axes scale division. 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...
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const

## Protected Member Functions

virtual QImage | renderImage (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &area, const QSize &imageSize) const
| Render an image from data and color map. More...
virtual QSize | contourRasterSize (const QRectF &, const QRect &) const
| Return the raster to be used by the CONREC contour algorithm. More...
virtual QwtRasterData::ContourLines | renderContourLines (const QRectF &rect, const QSize &raster) const
virtual void | drawContourLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QwtRasterData::ContourLines &lines) const
void | renderTile (const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRect &imageRect, QImage *image) const
| Render a tile of an image. More...
Protected Member Functions inherited from QwtPlotRasterItem
virtual QwtScaleMap | imageMap (Qt::Orientation, const QwtScaleMap &map, const QRectF &area, const QSize &imageSize, double pixelSize) const
| Calculate a scale map for painting to an image. More...
Protected Member Functions inherited from QwtPlotItem
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const
| Return a default icon from a brush. More...

## Detailed Description

A plot item, which displays a spectrogram.

A spectrogram displays 3-dimensional data, where the 3rd dimension ( the intensity ) is displayed using colors. The colors are calculated from the values using a color map.

On multi-core systems the performance of the image composition can often be improved by dividing the area into tiles - each of them rendered in a different thread ( see QwtPlotItem::setRenderThreadCount() ).

In ContourMode contour lines are painted for the contour levels.

See also
  QwtRasterData, QwtColorMap, QwtPlotItem::setRenderThreadCount()

## Member Enumeration Documentation

enum QwtPlotSpectrogram::DisplayMode

The display mode controls how the raster data will be represented.

See also
  setDisplayMode(), testDisplayMode()

Enumerator
ImageMode | The values are mapped to colors using a color map.
ContourMode | The data is displayed using contour lines.

## Constructor & Destructor Documentation

QwtPlotSpectrogram::QwtPlotSpectrogram | ( | const QString & | title = `QString::null` | ) |

explicit

Sets the following item attributes:

- QwtPlotItem::AutoScale: true
- QwtPlotItem::Legend: false

The z value is initialized by 8.0.

Parameters

  title | Title

See also
  QwtPlotItem::setItemAttribute(), QwtPlotItem::setZ()

## Member Function Documentation

const QwtColorMap * QwtPlotSpectrogram::colorMap | ( |  | ) | const

Returns
  Color Map used for mapping the intensity values to colors

See also
  setColorMap()

QList< double > QwtPlotSpectrogram::contourLevels | ( |  | ) | const

Returns
  Levels of the contour lines.

The levels are sorted in increasing order.

See also
  contourLevels(), renderContourLines(), QwtRasterData::contourLines()

QPen QwtPlotSpectrogram::contourPen | ( | double | level | ) | const

virtual

Calculate the pen for a contour line.

The color of the pen is the color for level calculated by the color map

Parameters

  level | Contour level

Returns
  Pen for the contour line

Note
  contourPen is only used if defaultContourPen().style() == Qt::NoPen

See also
  setDefaultContourPen(), setColorMap(), setContourLevels()

QSize QwtPlotSpectrogram::contourRasterSize | ( | const QRectF & | area,
|  | const QRect & | rect
| ) |  | const

protectedvirtual

Return the raster to be used by the CONREC contour algorithm.

A larger size will improve the precision of the CONREC algorithm, but will slow down the time that is needed to calculate the lines.

The default implementation returns rect.size() / 2 bounded to the resolution depending on pixelSize().

Parameters

  area | Rectangle, where to calculate the contour lines
  rect | Rectangle in pixel coordinates, where to paint the contour lines

Returns
  Raster to be used by the CONREC contour algorithm.

Note
  The size will be bounded to rect.size().

See also
  drawContourLines(), QwtRasterData::contourLines()

const QwtRasterData * QwtPlotSpectrogram::data | ( |  | ) | const

Returns
  Spectrogram data

See also
  setData()

QwtRasterData * QwtPlotSpectrogram::data | ( |  | ) |

Returns
  Spectrogram data

See also
  setData()

QPen QwtPlotSpectrogram::defaultContourPen | ( |  | ) | const

Returns
  Default contour pen

See also
  setDefaultContourPen()

void QwtPlotSpectrogram::draw | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRectF & | canvasRect
| ) |  | const

virtual

Draw the spectrogram.

Parameters

  painter | Painter
  xMap | Maps x-values into pixel coordinates.
  yMap | Maps y-values into pixel coordinates.
  canvasRect | Contents rectangle of the canvas in painter coordinates

See also
  setDisplayMode(), renderImage(), QwtPlotRasterItem::draw(), drawContourLines()

Reimplemented from QwtPlotRasterItem.

void QwtPlotSpectrogram::drawContourLines | ( | QPainter * | painter,
|  | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QwtRasterData::ContourLines & | contourLines
| ) |  | const

protectedvirtual

Paint the contour lines

Parameters

  painter | Painter
  xMap | Maps x-values into pixel coordinates.
  yMap | Maps y-values into pixel coordinates.
  contourLines | Contour lines

See also
  renderContourLines(), defaultContourPen(), contourPen()

QwtInterval QwtPlotSpectrogram::interval | ( | Qt::Axis | axis | ) | const

virtual

Returns
  Bounding interval for an axis

The default implementation returns the interval of the associated raster data object.

Parameters

  axis | X, Y, or Z axis

See also
  QwtRasterData::interval()

Reimplemented from QwtPlotRasterItem.

QRectF QwtPlotSpectrogram::pixelHint | ( | const QRectF & | area | ) | const

virtual

Pixel hint.

The geometry of a pixel is used to calculated the resolution and alignment of the rendered image.

The default implementation returns data()->pixelHint( rect );

Parameters

  area | In most implementations the resolution of the data doesn't depend on the requested area.

Returns
  Bounding rectangle of a pixel

See also
  QwtPlotRasterItem::pixelHint(), QwtRasterData::pixelHint(), render(), renderImage()

Reimplemented from QwtPlotRasterItem.

QwtRasterData::ContourLines QwtPlotSpectrogram::renderContourLines | ( | const QRectF & | rect,
|  | const QSize & | raster
| ) |  | const

protectedvirtual

Calculate contour lines

Parameters

  rect | Rectangle, where to calculate the contour lines
  raster | Raster, used by the CONREC algorithm

Returns
  Calculated contour lines

See also
  contourLevels(), setConrecFlag(), QwtRasterData::contourLines()

QImage QwtPlotSpectrogram::renderImage | ( | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRectF & | area,
|  | const QSize & | imageSize
| ) |  | const

protectedvirtual

Render an image from data and color map.

For each pixel of area the value is mapped into a color.

Parameters

  xMap | X-Scale Map
  yMap | Y-Scale Map
  area | Requested area for the image in scale coordinates
  imageSize | Size of the requested image

Returns
  A QImage::Format_Indexed8 or QImage::Format_ARGB32 depending on the color map.

See also
  QwtRasterData::value(), QwtColorMap::rgb(), QwtColorMap::colorIndex()

Implements QwtPlotRasterItem.

void QwtPlotSpectrogram::renderTile | ( | const QwtScaleMap & | xMap,
|  | const QwtScaleMap & | yMap,
|  | const QRect & | tile,
|  | QImage * | image
| ) |  | const

protected

Render a tile of an image.

Rendering in tiles can be used to composite an image in parallel threads.

Parameters

  xMap | X-Scale Map
  yMap | Y-Scale Map
  tile | Geometry of the tile in image coordinates
  image | Image to be rendered

int QwtPlotSpectrogram::rtti | ( |  | ) | const

virtual

Returns
  QwtPlotItem::Rtti_PlotSpectrogram

Reimplemented from QwtPlotItem.

void QwtPlotSpectrogram::setColorMap | ( | QwtColorMap * | colorMap | ) |

Change the color map

Often it is useful to display the mapping between intensities and colors as an additional plot axis, showing a color bar.

Parameters

  colorMap | Color Map

See also
  colorMap(), QwtScaleWidget::setColorBarEnabled(), QwtScaleWidget::setColorMap()

void QwtPlotSpectrogram::setConrecFlag | ( | QwtRasterData::ConrecFlag | flag,
|  | bool | on
| ) |  |

Modify an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters

  flag | CONREC flag
  on | On/Off

See also
  testConrecFlag(), renderContourLines(), QwtRasterData::contourLines()

void QwtPlotSpectrogram::setContourLevels | ( | const QList< double > & | levels | ) |

Set the levels of the contour lines

Parameters

  levels | Values of the contour levels

See also
  contourLevels(), renderContourLines(), QwtRasterData::contourLines()

Note
  contourLevels returns the same levels but sorted.

void QwtPlotSpectrogram::setData | ( | QwtRasterData * | data | ) |

Set the data to be displayed

Parameters

  data | Spectrogram Data

See also
  data()

void QwtPlotSpectrogram::setDefaultContourPen | ( | const QColor & | color,
|  | qreal | width = `0.0`,
|  | Qt::PenStyle | style = `Qt::SolidLine`
| ) |  |

Build and assign the default pen for the contour lines

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 QwtPlotSpectrogram::setDefaultContourPen | ( | const QPen & | pen | ) |

Set the default pen for the contour lines.

If the spectrogram has a valid default contour pen a contour line is painted using the default contour pen. Otherwise (pen.style() == Qt::NoPen) the pen is calculated for each contour level using contourPen().

See also
  defaultContourPen(), contourPen()

void QwtPlotSpectrogram::setDisplayMode | ( | DisplayMode | mode,
|  | bool | on = `true`
| ) |  |

The display mode controls how the raster data will be represented.

Parameters

  mode | Display mode
  on | On/Off

The default setting enables ImageMode.

See also
  DisplayMode, displayMode()

bool QwtPlotSpectrogram::testConrecFlag | ( | QwtRasterData::ConrecFlag | flag | ) | const

Test an attribute of the CONREC algorithm, used to calculate the contour lines.

Parameters

  flag | CONREC flag

Returns
  true, is enabled

The default setting enables QwtRasterData::IgnoreAllVerticesOnLevel

See also
  setConrecClag(), renderContourLines(), QwtRasterData::contourLines()

bool QwtPlotSpectrogram::testDisplayMode | ( | DisplayMode | mode | ) | const

The display mode controls how the raster data will be represented.

Parameters

  mode | Display mode

Returns
  true if mode is enabled