QwtPlot is a widget for plotting two-dimensional graphs. An unlimited number of data pairs can be displayed as curves in different styles and colors. A plot can have up to four axes, with each curve attached to an x- and a y axis. The scales at the axes are dimensioned automatically using an algorithm which can be configured separately for each axis. Linear and logarithmic scaling is supported. Markers of different styles can be added to the plot.
Curves and markers are identified by unique keys which are generated automatically when a curve or a marker is inserted. These keys are used to access the properties of the corresponding curves and markers.
A QwtPlot widget can have up to four axes which are indexed by the constants QwtPlot::yLeft, QwtPlot::yRight, QwtPlot::xTop, and QwtPlot::xBottom. Curves, markers, and the grid must be attached to an x axis and a y axis (Default: yLeft and xBottom).
#include "../include/qwt_plot.h> QwtPlot *myPlot; long curve1, curve2; // keys double x[100], y1[100], y2[100]; // x and y values myPlot = new QwtPlot("Two Graphs", parent, name); // add curves curve1 = myPlot->insertCurve("Graph 1"); curve2 = myPlot->insertCurve("Graph 2"); getSomeValues(x, y1, y2); // copy the data into the curves myPlot->setCurveData(curve1, x, y1, 100); myPlot->setCurveData(curve2, x, y2, 100); // finally, refresh the plot myPlot->replot();
Public Types | |
enum | Axis { yLeft, yRight, xBottom, xTop, axisCnt } |
Public Member Functions | |
QwtPlot (QWidget *p=0, const char *name=0) | |
QwtPlot (const QString &title, QWidget *p=0, const char *name=0) | |
virtual | ~QwtPlot () |
void | enableXBottomAxis (bool b) |
bool | xBottomAxisEnabled () const |
void | enableXTopAxis (bool b) |
bool | xTopAxisEnabled () const |
void | enableYRightAxis (bool b) |
bool | yRightAxisEnabled () const |
void | enableYLeftAxis (bool b) |
bool | yLeftAxisEnabled () const |
void | setAutoReplot (bool tf=TRUE) |
bool | autoReplot () const |
void | print (QPaintDevice &p, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const |
virtual void | print (QPainter *, const QRect &rect, const QwtPlotPrintFilter &=QwtPlotPrintFilter()) const |
void | clear () |
void | enableOutline (bool tf) |
bool | outlineEnabled () const |
void | setOutlineStyle (Qwt::Shape os) |
Qwt::Shape | outlineStyle () const |
void | setOutlinePen (const QPen &pn) |
const QPen & | outlinePen () const |
QwtPlotLayout * | plotLayout () |
const QwtPlotLayout * | plotLayout () const |
void | setMargin (int margin) |
int | margin () const |
void | setTitle (const QString &t) |
QString | title () const |
void | setTitleFont (const QFont &f) |
QFont | titleFont () const |
QLabel * | titleLabel () |
const QLabel * | titleLabel () const |
QwtPlotCanvas * | canvas () |
const QwtPlotCanvas * | canvas () const |
void | setCanvasBackground (const QColor &c) |
const QColor & | canvasBackground () const |
void | setCanvasLineWidth (int w) |
int | canvasLineWidth () const |
QwtPlotCurveIterator | curveIterator () const |
QwtPlotMarkerIterator | markerIterator () const |
QwtDiMap | canvasMap (int axis) const |
double | invTransform (int axis, int pos) const |
int | transform (int axis, double value) const |
long | insertCurve (QwtPlotCurve *) |
long | insertCurve (const QString &title, int xAxis=xBottom, int yAxis=yLeft) |
QwtPlotCurve * | curve (long key) |
const QwtPlotCurve * | curve (long key) const |
bool | removeCurve (long key) |
void | removeCurves () |
QwtArray< long > | curveKeys () const |
long | closestCurve (int xpos, int ypos, int &dist) const |
long | closestCurve (int xpos, int ypos, int &dist, double &xval, double &yval, int &index) const |
bool | setCurveBaseline (long key, double ref) |
double | curveBaseline (long key) const |
bool | setCurveRawData (long key, const double *x, const double *y, int size) |
bool | setCurveData (long key, const double *x, const double *y, int size) |
bool | setCurveData (long key, const QwtArray< double > &x, const QwtArray< double > &y) |
bool | setCurveData (long key, const QwtArray< QwtDoublePoint > &data) |
bool | setCurveData (long key, const QwtData &data) |
bool | setCurveOptions (long key, int t) |
int | curveOptions (long key) const |
bool | setCurvePen (long key, const QPen &pen) |
QPen | curvePen (long key) const |
bool | setCurveBrush (long key, const QBrush &brush) |
QBrush | curveBrush (long key) const |
bool | setCurveSplineSize (long key, int s) |
int | curveSplineSize (long key) const |
bool | setCurveStyle (long key, int s, int options=0) |
int | curveStyle (long key) const |
bool | setCurveSymbol (long key, const QwtSymbol &s) |
QwtSymbol | curveSymbol (long key) const |
bool | setCurveTitle (long key, const QString &s) |
QString | curveTitle (long key) const |
bool | setCurveXAxis (long key, int axis) |
int | curveXAxis (long key) const |
bool | setCurveYAxis (long key, int axis) |
int | curveYAxis (long key) const |
void | drawCurve (long key, int from=0, int to=-1) |
void | enableGridX (bool tf=TRUE) |
void | enableGridXMin (bool tf=TRUE) |
void | enableGridY (bool tf=TRUE) |
void | enableGridYMin (bool tf=TRUE) |
void | setGridXAxis (int axis) |
int | gridXAxis () const |
void | setGridYAxis (int axis) |
int | gridYAxis () const |
void | setGridPen (const QPen &p) |
void | setGridMajPen (const QPen &p) |
const QPen & | gridMajPen () const |
void | setGridMinPen (const QPen &p) |
const QPen & | gridMinPen () const |
QwtPlotGrid & | grid () |
const QwtPlotGrid & | grid () const |
void | setAxisAutoScale (int axis) |
bool | axisAutoScale (int axis) const |
void | enableAxis (int axis, bool tf=TRUE) |
bool | axisEnabled (int axis) const |
void | changeAxisOptions (int axis, int opt, bool value) |
void | setAxisOptions (int axis, int opt) |
int | axisOptions (int axis) const |
void | setAxisFont (int axis, const QFont &f) |
QFont | axisFont (int axis) const |
void | setAxisMargins (int axis, double mlo, double mhi) |
bool | axisMargins (int axis, double &mlo, double &mhi) const |
void | setAxisScale (int axis, double min, double max, double step=0) |
void | setAxisScaleDraw (int axis, QwtScaleDraw *) |
const QwtScaleDiv * | axisScale (int axis) const |
const QwtScaleDraw * | axisScaleDraw (int axis) const |
const QwtScale * | axis (int axis) const |
void | setAxisLabelFormat (int axis, char f, int prec, int fieldwidth=0) |
void | axisLabelFormat (int axis, char &f, int &prec, int &fieldwidth) const |
void | setAxisLabelAlignment (int axis, int alignment) |
void | setAxisLabelRotation (int axis, double rotation) |
void | setAxisTitle (int axis, const QString &t) |
QString | axisTitle (int axis) const |
void | setAxisTitleFont (int axis, const QFont &f) |
QFont | axisTitleFont (int axis) const |
void | setAxisTitleAlignment (int axis, int align) |
int | axisTitleAlignment (int axis) const |
void | setAxisMaxMinor (int axis, int maxMinor) |
int | axisMaxMajor (int axis) const |
void | setAxisMaxMajor (int axis, int maxMajor) |
int | axisMaxMinor (int axis) const |
void | setAxisReference (int axis, double value) |
double | axisReference (int axis) const |
long | insertMarker (QwtPlotMarker *) |
long | insertMarker (const QString &label=QString::null, int xAxis=xBottom, int yAxis=yLeft) |
long | insertLineMarker (const QString &label, int axis) |
QwtPlotMarker * | marker (long key) |
const QwtPlotMarker * | marker (long key) const |
bool | removeMarker (long key) |
void | removeMarkers () |
long | closestMarker (int xpos, int ypos, int &dist) const |
QwtArray< long > | markerKeys () const |
bool | setMarkerXAxis (long key, int axis) |
int | markerXAxis (long key) const |
bool | setMarkerYAxis (long key, int axis) |
int | markerYAxis (long key) const |
bool | setMarkerPos (long key, double xval, double yVal) |
bool | setMarkerXPos (long key, double val) |
bool | setMarkerYPos (long key, double val) |
void | markerPos (long key, double &mx, double &my) const |
bool | setMarkerFont (long key, const QFont &f) |
QFont | markerFont (long key) const |
bool | setMarkerPen (long key, const QPen &p) |
bool | setMarkerLabel (long key, const QString &text, const QFont &font=QFont(), const QColor &color=QColor(), const QPen &pen=QPen(Qt::NoPen), const QBrush &brush=QBrush(Qt::NoBrush)) |
bool | setMarkerLabelText (long key, const QString &text) |
const QString | markerLabel (long key) const |
bool | setMarkerLabelAlign (long key, int align) |
int | markerLabelAlign (long key) const |
bool | setMarkerLabelPen (long key, const QPen &p) |
QPen | markerLabelPen (long key) const |
bool | setMarkerLinePen (long key, const QPen &p) |
QPen | markerLinePen (long key) const |
bool | setMarkerLineStyle (long key, QwtMarker::LineStyle st) |
QwtMarker::LineStyle | markerLineStyle (long key) const |
bool | setMarkerSymbol (long key, const QwtSymbol &s) |
QwtSymbol | markerSymbol (long key) const |
void | setAutoLegend (bool enabled) |
bool | autoLegend () const |
void | enableLegend (bool tf, long curveKey=-1) |
bool | legendEnabled (long curveKey) const |
void | setLegendPos (int pos, double ratio=0.0) |
int | legendPos () const |
void | setLegendFont (const QFont &f) |
const QFont | legendFont () const |
void | setLegendFrameStyle (int st) |
int | legendFrameStyle () const |
QwtLegend * | legend () |
const QwtLegend * | legend () const |
void | setLegendDisplayPolicy (QwtLegend::LegendDisplayPolicy, int mode=-1) |
virtual QSize | sizeHint () const |
virtual QSize | minimumSizeHint () const |
virtual QSizePolicy | sizePolicy () const |
virtual bool | event (QEvent *) |
virtual void | replot () |
Protected Member Functions | |
virtual void | lgdClicked () |
void | plotMousePressed (const QMouseEvent &e) |
void | plotMouseReleased (const QMouseEvent &e) |
void | plotMouseMoved (const QMouseEvent &e) |
void | legendClicked (long key) |
void | autoRefresh () |
virtual void | drawCanvas (QPainter *) |
virtual void | drawCanvasItems (QPainter *, const QRect &, const QwtArray< QwtDiMap > &, const QwtPlotPrintFilter &) const |
virtual void | drawContents (QPainter *p) |
virtual void | updateTabOrder () |
void | updateAxes () |
void | updateLayout () |
virtual void | resizeEvent (QResizeEvent *e) |
virtual void | insertLegendItem (long curveKey) |
virtual void | updateLegendItem (long curveKey) |
virtual void | printLegendItem (QPainter *, const QWidget *, const QRect &) const |
void | updateLegendItem (const QwtPlotCurve *, QwtLegendItem *) |
virtual void | printTitle (QPainter *, const QRect &) const |
virtual void | printScale (QPainter *, int axis, int startDist, int endDist, int baseDist, const QRect &) const |
virtual void | printCanvas (QPainter *, const QRect &, const QwtArray< QwtDiMap > &, const QwtPlotPrintFilter &) const |
virtual void | printLegend (QPainter *, const QRect &) const |
Static Protected Member Functions | |
bool | axisValid (int axis) |
Friends | |
class | QwtPlotItem |
class | QwtPlotCanvas |
class | QwtPlotPrintFilter |
|
Axis index.
|
|
Constructor.
|
|
Constructor.
|
|
Destructor.
|
|
|
|
Replots the plot if QwtPlot::autoReplot() is
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Determine the scale margins for a specified axis.
|
|
|
|
|
|
|
|
The reference value is needed if the autoscaling options QwtAutoScale::Symmetric or QwtAutoScale::IncludeRef are set.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nothing else than: canvas()->palette().color( QPalette::Normal, QColorGroup::Background);
|
|
Nothing else than: canvas()->lineWidth(), left for compatibility only.
|
|
|
|
Change specified autoscaling options of an axis.
|
|
Remove all curves and markers.
|
|
Find the curve which is closest to a point in the plotting area. Determines the position and index of the closest data point.
|
|
Find the curve which is closest to a specified point in the plotting area.
|
|
Find the marker which is closest to a given point.
|
|
Find and return an existing curve.
|
|
Find and return an existing curve.
|
|
Return the baseline offset for a specified curve.
|
|
|
|
Return an iterator for the plot curves.
|
|
|
|
|
|
|
|
|
|
|
|
the symbol of the curve indexed by key
|
|
|
|
Return the index of the x axis to which a curve is mapped.
|
|
the index of the y axis to which a curve is mapped
|
|
Redraw the canvas.
|
|
Redraw the canvas items.
|
|
drawContents
|
|
Draw a set of points of a curve. When observing an measurement while it is running, new points have to be added to an existing curve. drawCurve can be used to display them avoiding a complete redraw of the canvas.
|
|
Enable or disable a specified axis. When an axis is disabled, this only means that it is not visible on the screen. Curves, markers and can be attached to disabled axes, and transformation of screen coordinates into values works as normal. Only xBottom and yLeft are enabled by default.
|
|
Enable or disable vertical gridlines.
|
|
Enable or disable vertical gridlines for the minor scale marks.
|
|
Enable or disable horizontal gridlines.
|
|
Enable or disable horizontal gridlines for the minor scale marks.
|
|
Enable or disable the legend.
|
|
Enables or disables outline drawing. When the outline feature is enabled, a shape will be drawn in the plotting region when the user presses or drags the mouse. It can be used to implement crosshairs, mark a selected region, etc.
|
|
Adds handling of QEvent::LayoutHint.
|
|
Return the canvas grid.
|
|
Return the canvas grid.
|
|
|
|
|
|
|
|
|
|
Insert a new curve and return a unique key.
|
|
Insert a curve.
|
|
Insert a QwtLegendItem for a specified curve. In case of legend()->isReadOnly the item will be a QwtLegendLabel, otherwise a QwtLegendButton.
|
|
This function is a shortcut to insert a horizontal or vertical line marker, dependent on the specified axis.
|
|
Insert a new marker.
|
|
Insert a new marker.
|
|
Transform the x or y coordinate of a position in the drawing region into a value.
|
|
|
|
|
|
A signal which is emitted when legend()->isReadOnly() and the user has clicked on a legend item,
|
|
|
|
|
|
|
|
|
|
Called internally when the legend has been clicked on. Emits a legendClicked() signal. |
|
|
|
Find and return an existing marker.
|
|
Find and return an existing marker.
|
|
|
|
Return an iterator for the plot curves.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Get the position of a marker.
|
|
|
|
|
|
|
|
Return a minimum size hint.
|
|
|
|
|
|
|
|
|
|
|
|
A signal which is emitted when the mouse is moved in the plot canvas. The coordinates are pixel values referring to the plot canvas. They can be translated using the canvasMaps.
|
|
A signal which is emitted when the mouse is pressed in the plot canvas. The coordinates are pixel values referring to the plot canvas. They can be translated using the canvasMaps.
|
|
A signal which is emitted when a mouse button has been released in the plot canvas. The coordinates are pixel values referring to the plot canvas. They can be translated using the canvasMaps.
|
|
Paint the plot into a given rectangle. Paint the contents of a QwtPlot instance into a given rectangle.
|
|
Print the plot to a
|
|
Print the canvas into a given rectangle.
|
|
Print the legend into a given rectangle.
|
|
Paint a scale into a given rectangle. Paint the scale into a given rectangle.
|
|
Print the title into a given rectangle.
|
|
remove the curve indexed by key
|
|
Remove all curves.
|
|
Remove the marker indexed by key.
|
|
Remove all markers.
|
|
Redraw the plot If the autoReplot option is not set (which is the default) or if any curves are attached to raw data, the plot has to be refreshed explicitly in order to make changes visible.
|
|
Resize and update internal layout.
|
|
Set or reset the autoLegend option If the autoLegend option is set, a item will be added to the legend whenever a curve is inserted. The autoLegend option is set to FALSE by default, which means that the user has to call enableLegend.
|
|
Set or reset the autoReplot option If the autoReplot option is set, the plot will be updated implicitly by manipulating member functions. Since this may be time-consuming, it is recommended to leave this option switched off and call replot() explicitly if necessary. The autoReplot option is set to FALSE by default, which means that the user has to call replot() in order to make changes visible.
|
|
Enable autoscaling for a specified axis. This member function is used to switch back to autoscaling mode after a fixed scale has been set. Autoscaling is enabled by default.
|
|
Change the font of an axis.
|
|
Change the number format for the major scale of a selected axis.
|
|
Assign margins to a specified axis.
|
|
Set the maximum number of major scale intervals for a specified axis.
|
|
Set the maximum number of minor scale intervals for a specified axis.
|
|
Reset scale options and set specified options for a specified axis.
|
|
Set a reference value for a specified axis. The reference value is used by some autoscaling modes.
|
|
Disable autoscaling and specify a fixed scale for a selected axis.
|
|
Set a scale draw.
|
|
Change the title of a specified axis.
|
|
Change the title alignment of a selected axis.
|
|
Change the title font of a selected axis.
|
|
Change the background of the plotting area. Sets c to QColorGroup::Background of all colorgroups of the palette of the canvas. Using canvas()->setPalette() is a more powerful way to set these colors.
|
|
Change the border width of the plotting area Nothing else than canvas()->setLineWidth(w), left for compatibility only.
|
|
Set the baseline for a specified curve. The baseline is needed for the curve style QwtCurve::Sticks,
|
|
Assign a brush to a curve indexed by key The brush will be used to fill the area between the curve and the baseline.
|
|
Initialize curve data with any QwtData object.
|
|
Initialize curve data with a array of points (explicitly shared).
|
|
Initialize curve data with x- and y-arrays (data is explicitly shared).
|
|
Set curve data by copying x- and y-values from specified blocks. Contrary to QwtPlot::setCurveRawData, this function makes a 'deep copy' of the data.
|
|
Set the style options of a curve indexed by key.
|
|
Assign a pen to a curve indexed by key.
|
|
Initialize the curve data by pointing to memory blocks which are not managed by QwtPlot.
|
|
Set the number of interpolated points of a curve indexed by key.
|
|
Change a curve's style.
|
|
Assign a symbol to a curve indexed by key.
|
|
|
|
Attach a curve to an x axis.
|
|
Attach a curve to an y axis.
|
|
Change the pen for the major gridlines.
|
|
Change the pen for the minor gridlines.
|
|
Change the grid's pens for major and minor gridlines.
|
|
Attach the grid to an x axis.
|
|
Attach the grid to an y axis.
|
|
Set the identifier display policy of the legend.
|
|
Change the font of the legend items.
|
|
Change the legend's frame style.
|
|
Specify the position of the legend within the widget. If the position legend is
|
|
Change the margin of the plot. The margin is the space around all components.
|
|
Specify a font for a marker's label.
|
|
Set the marker label.
|
|
Specify the alignment of a marker's label. The alignment determines the position of the label relative to the marker's position. The default setting is AlignCenter.
|
|
Specify a pen for a marker's label.
|
|
Assign a text to the label of a marker.
|
|
Specify a pen for a marker's line.
|
|
Specify the line style for a marker.
|
|
Specify a pen for a marker's label.
|
|
Change the position of a marker.
|
|
Assign a symbol to a specified marker.
|
|
Attach the marker to an x axis.
|
|
Specify the X position of a marker.
|
|
Attach the marker to a Y axis.
|
|
Specify the Y position of the marker.
|
|
Specify a pen for the outline.
|
|
Specify the style of the outline. The outline style determines which kind of shape is drawn in the plotting region when the user presses a mouse button or drags the mouse. Valid Styles are:
|
|
Change the plot's title.
|
|
Change the title font.
|
|
Return sizeHint
|
|
Return MinimumExpanding/MinimumExpanding.
|
|
|
|
|
|
|
|
|
|
Transform a value into a coordinate in the plotting region.
|
|
Rebuild the scales and maps.
|
|
Adjust plot content to its current size.
|
|
Update a QwtLegendButton for a specified curve.
|
|
Update the focus tab order.
|