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

# QwtPlotSpectrogram(3)

A plot item, which displays a spectrogram.

## NAME

QwtPlotSpectrogram - A plot item, which displays a spectrogram.

## SYNOPSIS

`#include <qwt_plot_spectrogram.h>`

Inherits **QwtPlotRasterItem**.

### Public Types

enum **DisplayMode** { **ImageMode** = 0x01, **ContourMode** = 0x02 }\
 typedef QFlags\< **DisplayMode** \> **DisplayModes**\
 Display modes.

### Public Member Functions

**QwtPlotSpectrogram** (const QString &**title**=QString())\
 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.  void **setDefaultContourPen** (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine)\
 void **setDefaultContourPen** (const QPen &)\
 Set the default pen for the contour lines.  QPen **defaultContourPen** () const\
 virtual QPen **contourPen** (double level) const\
 Calculate the pen for a contour line.  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 \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRectF &canvasRect) const\
 Draw the spectrogram.

### 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.  virtual QSize **contourRasterSize** (const QRectF &, const QRect &) const\
 Return the raster to be used by the CONREC contour algorithm.  virtual **QwtRasterData::ContourLines** **renderContourLines** (const QRectF &rect, const QSize &raster) const\
 virtual void **drawContourLines** (QPainter \*, const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const **QwtRasterData::ContourLines** &) const\
 void **renderTile** (const **QwtScaleMap** &xMap, const **QwtScaleMap** &yMap, const QRect &tile, QImage \*) const\
 Render a tile of an image.

## 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()`)` [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` [protected]`, ` [virtual]`

*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` [protected]`, ` [virtual]`

*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` [protected]`, ` [virtual]`

*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` [protected]`, ` [virtual]`

*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*

## Author

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