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

# QwtPlotRescaler(3)

QwtPlotRescaler takes care of fixed aspect ratios for plot scales.

## NAME

QwtPlotRescaler - **QwtPlotRescaler** takes care of fixed aspect ratios for plot scales.

## SYNOPSIS

`#include <qwt_plot_rescaler.h>`

Inherits QObject.

### Public Types

enum **RescalePolicy** { **Fixed**, **Expanding**, **Fitting** }\
 enum **ExpandingDirection** { **ExpandUp**, **ExpandDown**, **ExpandBoth** }\

### Public Member Functions

**QwtPlotRescaler** (QWidget \***canvas**, int **referenceAxis**=**QwtPlot::xBottom**, **RescalePolicy**=**Expanding**)\
 virtual **~QwtPlotRescaler** ()\
 Destructor.  void **setEnabled** (bool)\
 En/disable the rescaler.  bool **isEnabled** () const\
 void **setRescalePolicy** (**RescalePolicy**)\
 **RescalePolicy** **rescalePolicy** () const\
 void **setExpandingDirection** (**ExpandingDirection**)\
 void **setExpandingDirection** (int axis, **ExpandingDirection**)\
 **ExpandingDirection** **expandingDirection** (int axis) const\
 void **setReferenceAxis** (int axis)\
 int **referenceAxis** () const\
 void **setAspectRatio** (double ratio)\
 void **setAspectRatio** (int axis, double ratio)\
 double **aspectRatio** (int axis) const\
 void **setIntervalHint** (int axis, const **QwtInterval** &)\
 **QwtInterval** **intervalHint** (int axis) const\
 QWidget \* **canvas** ()\
 const QWidget \* **canvas** () const\
 **QwtPlot** \* **plot** ()\
 const **QwtPlot** \* **plot** () const\
 virtual bool **eventFilter** (QObject \*, QEvent \*)\
 Event filter for the plot canvas.  void **rescale** () const\
 Adjust the plot axes scales.

### Protected Member Functions

virtual void **canvasResizeEvent** (QResizeEvent \*)\
 virtual void **rescale** (const QSize &oldSize, const QSize &newSize) const\
 virtual **QwtInterval** **expandScale** (int axis, const QSize &oldSize, const QSize &newSize) const\
 virtual **QwtInterval** **syncScale** (int axis, const **QwtInterval** &reference, const QSize &size) const\
 virtual void **updateScales** (**QwtInterval** intervals\[**QwtPlot::axisCnt**\]) const\
 Qt::Orientation **orientation** (int axis) const\
 **QwtInterval** **interval** (int axis) const\
 **QwtInterval** **expandInterval** (const **QwtInterval** &, double width, **ExpandingDirection**) const\

## Detailed Description

**QwtPlotRescaler** takes care of fixed aspect ratios for plot scales.

**QwtPlotRescaler** auto adjusts the axes of a **QwtPlot** according to fixed aspect ratios.

## Member Enumeration Documentation

### enum QwtPlotRescaler::ExpandingDirection

When **rescalePolicy()** is set to Expanding its direction depends on ExpandingDirection

**Enumerator**

- *ExpandUp*

  *The upper limit of the scale is adjusted.*

- *ExpandDown*

  *The lower limit of the scale is adjusted.*

- *ExpandBoth*

  *Both limits of the scale are adjusted.*

### enum QwtPlotRescaler::RescalePolicy

*The rescale policy defines how to rescale the reference axis and their depending axes.*

**See also:**

**ExpandingDirection***,* **setIntervalHint()**

**Enumerator**

- *Fixed*

  *The interval of the reference axis remains unchanged, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.*

- *Expanding*

  *The interval of the reference axis will be shrunk/expanded, when the geometry of the canvas changes. All other axes will be adjusted according to their aspect ratio.*

*The interval, that is represented by one pixel is fixed.*

- *Fitting*

  *The intervals of the axes are calculated, so that all axes include their interval hint.*

## Constructor & Destructor Documentation

### QwtPlotRescaler::QwtPlotRescaler (QWidget \* canvas, int referenceAxis = QwtPlot::xBottom, RescalePolicy policy = Expanding)` [explicit]`

*Constructor*

**Parameters:**

*canvas Canvas* \
 *referenceAxis Reference axis, see RescalePolicy* \
 *policy Rescale policy*

**See also:**

**setRescalePolicy()***,* **setReferenceAxis()**

## Member Function Documentation

### double QwtPlotRescaler::aspectRatio (int axis) const

**Returns:**

*Aspect ratio between an axis and the reference axis.*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )*

**See also:**

**setAspectRatio()**

### QWidget \* QwtPlotRescaler::canvas ()

**Returns:**

*plot canvas*

### const QWidget \* QwtPlotRescaler::canvas () const

**Returns:**

*plot canvas*

### void QwtPlotRescaler::canvasResizeEvent (QResizeEvent \* event)` [protected]`, ` [virtual]`

*Event handler for resize events of the plot canvas*

**Parameters:**

*event Resize event*

**See also:**

**rescale()**

### QwtPlotRescaler::ExpandingDirection QwtPlotRescaler::expandingDirection (int axis) const

**Returns:**

*Direction in which an axis should be expanded*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )*

**See also:**

**setExpandingDirection()**

### QwtInterval QwtPlotRescaler::expandInterval (const QwtInterval & interval, double width, ExpandingDirection direction) const` [protected]`

*Expand the interval*

**Parameters:**

*interval Interval to be expanded* \
 *width Distance to be added to the interval* \
 *direction Direction of the expand operation*

**Returns:**

*Expanded interval*

### QwtInterval QwtPlotRescaler::expandScale (int axis, const QSize & oldSize, const QSize & newSize) const` [protected]`, ` [virtual]`

*Calculate the new scale interval of a plot axis*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )* \
 *oldSize Previous size of the canvas* \
 *newSize New size of the canvas*

**Returns:**

*Calculated new interval for the axis*

### QwtInterval QwtPlotRescaler::interval (int axis) const` [protected]`

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )*

**Returns:**

*Normalized interval of an axis*

### QwtInterval QwtPlotRescaler::intervalHint (int axis) const

**Parameters:**

*axis Axis, see* **QwtPlot::Axis**

**Returns:**

*Interval hint*

**See also:**

**setIntervalHint()***,* **RescalePolicy**

### bool QwtPlotRescaler::isEnabled () const

**Returns:**

*true when enabled, false otherwise*

**See also:**

**setEnabled***,* **eventFilter()**

### Qt::Orientation QwtPlotRescaler::orientation (int axis) const` [protected]`

**Returns:**

*Orientation of an axis*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )*

### QwtPlot \* QwtPlotRescaler::plot ()

**Returns:**

*plot widget*

### const QwtPlot \* QwtPlotRescaler::plot () const

**Returns:**

*plot widget*

### int QwtPlotRescaler::referenceAxis () const

**Returns:**

*Reference axis ( see RescalePolicy )*

**See also:**

**setReferenceAxis()**

### void QwtPlotRescaler::rescale (const QSize & oldSize, const QSize & newSize) const` [protected]`, ` [virtual]`

*Adjust the plot axes scales*

**Parameters:**

*oldSize Previous size of the canvas* \
 *newSize New size of the canvas*

### QwtPlotRescaler::RescalePolicy QwtPlotRescaler::rescalePolicy () const

**Returns:**

*Rescale policy*

**See also:**

**setRescalePolicy()**

### void QwtPlotRescaler::setAspectRatio (double ratio)

*Set the aspect ratio between the scale of the reference axis and the other scales. The default ratio is 1.0*

**Parameters:**

*ratio Aspect ratio*

**See also:**

**aspectRatio()**

### void QwtPlotRescaler::setAspectRatio (int axis, double ratio)

*Set the aspect ratio between the scale of the reference axis and another scale. The default ratio is 1.0*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )* \
 *ratio Aspect ratio*

**See also:**

**aspectRatio()**

### void QwtPlotRescaler::setEnabled (bool on)

*En/disable the rescaler. When enabled is true an event filter is installed for the canvas, otherwise the event filter is removed.*

**Parameters:**

*on true or false*

**See also:**

**isEnabled()***,* **eventFilter()**

### void QwtPlotRescaler::setExpandingDirection (ExpandingDirection direction)

*Set the direction in which all axis should be expanded*

**Parameters:**

*direction Direction*

**See also:**

**expandingDirection()**

### void QwtPlotRescaler::setExpandingDirection (int axis, ExpandingDirection direction)

*Set the direction in which an axis should be expanded*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )* \
 *direction Direction*

**See also:**

**expandingDirection()**

### void QwtPlotRescaler::setIntervalHint (int axis, const QwtInterval & interval)

*Set an interval hint for an axis*

*In Fitting mode, the hint is used as minimal interval that always needs to be displayed.*

**Parameters:**

*axis Axis, see* **QwtPlot::Axis** \
 *interval Axis*

**See also:**

**intervalHint()***,* **RescalePolicy**

### void QwtPlotRescaler::setReferenceAxis (int axis)

*Set the reference axis ( see RescalePolicy )*

**Parameters:**

*axis Axis index (* **QwtPlot::Axis** *)*

**See also:**

**referenceAxis()**

### void QwtPlotRescaler::setRescalePolicy (RescalePolicy policy)

*Change the rescale policy*

**Parameters:**

*policy Rescale policy*

**See also:**

**rescalePolicy()**

### QwtInterval QwtPlotRescaler::syncScale (int axis, const QwtInterval & reference, const QSize & size) const` [protected]`, ` [virtual]`

*Synchronize an axis scale according to the scale of the reference axis*

**Parameters:**

*axis Axis index ( see QwtPlot::AxisId )* \
 *reference Interval of the reference axis* \
 *size Size of the canvas*

**Returns:**

*New interval for axis*

### void QwtPlotRescaler::updateScales (QwtInterval intervals\[QwtPlot::axisCnt\]) const` [protected]`, ` [virtual]`

*Update the axes scales*

**Parameters:**

*intervals Scale intervals*

## Author

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