A plot item, that represents a series of points. More...
#include <qwt_plot_curve.h>
Classes | |
class | PrivateData |
Public Member Functions | |
double | baseline () const |
const QBrush & | brush () const |
virtual int | closestPoint (const QPoint &pos, double *dist=NULL) const |
QwtCurveFitter * | curveFitter () const |
virtual void | drawSeries (QPainter *, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual QwtGraphic | legendIcon (int index, const QSizeF &) const |
double | maxXValue () const |
boundingRect().right() More... | |
double | maxYValue () const |
boundingRect().bottom() More... | |
double | minXValue () const |
boundingRect().left() More... | |
double | minYValue () const |
boundingRect().top() More... | |
const QPen & | pen () const |
QwtPlotCurve (const QString &title=QString()) | |
QwtPlotCurve (const QwtText &title) | |
virtual int | rtti () const |
void | setBaseline (double) |
Set the value of the baseline. More... | |
void | setBrush (const QBrush &) |
Assign a brush. More... | |
void | setCurveAttribute (CurveAttribute, bool on=true) |
void | setCurveFitter (QwtCurveFitter *) |
void | setLegendAttribute (LegendAttribute, bool on=true) |
void | setPaintAttribute (PaintAttribute, bool on=true) |
void | setPen (const QColor &, qreal width=0.0, Qt::PenStyle=Qt::SolidLine) |
void | setPen (const QPen &) |
void | setRawSamples (const double *xData, const double *yData, int size) |
Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve. More... | |
void | setSamples (const double *xData, const double *yData, int size) |
void | setSamples (const QVector< double > &xData, const QVector< double > &yData) |
Initialize data with x- and y-arrays (explicitly shared) More... | |
void | setSamples (const QVector< QPointF > &) |
void | setSamples (QwtSeriesData< QPointF > *) |
void | setStyle (CurveStyle style) |
void | setSymbol (QwtSymbol *) |
Assign a symbol. More... | |
CurveStyle | style () const |
const QwtSymbol * | symbol () const |
bool | testCurveAttribute (CurveAttribute) const |
bool | testLegendAttribute (LegendAttribute) const |
bool | testPaintAttribute (PaintAttribute) const |
virtual | ~QwtPlotCurve () |
Destructor. More... | |
Public Member Functions inherited from QwtPlotSeriesItem | |
virtual QRectF | boundingRect () const |
virtual void | draw (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &) const |
Draw the complete series. More... | |
Qt::Orientation | orientation () const |
QwtPlotSeriesItem (const QString &title=QString()) | |
QwtPlotSeriesItem (const QwtText &title) | |
void | setOrientation (Qt::Orientation) |
virtual void | updateScaleDiv (const QwtScaleDiv &, const QwtScaleDiv &) |
Update the item to changes of the axes scale division. More... | |
virtual | ~QwtPlotSeriesItem () |
Destructor. More... | |
Public Member Functions inherited from 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... | |
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... | |
void | hide () |
Hide the item. More... | |
bool | isVisible () const |
virtual void | itemChanged () |
virtual void | legendChanged () |
virtual QList< QwtLegendData > | legendData () const |
Return all information, that is needed to represent the item on the legend. More... | |
QSize | legendIconSize () const |
QRectF | paintRect (const QwtScaleMap &, const QwtScaleMap &) const |
Calculate the bounding paint rectangle of 2 maps. More... | |
QwtPlot * | plot () const |
Return attached plot. More... | |
QwtPlotItem (const QwtText &title=QwtText()) | |
uint | renderThreadCount () const |
QRectF | scaleRect (const QwtScaleMap &, const QwtScaleMap &) const |
Calculate the bounding scale rectangle of 2 maps. More... | |
void | setAxes (int xAxis, int yAxis) |
void | setItemAttribute (ItemAttribute, bool on=true) |
void | setItemInterest (ItemInterest, bool on=true) |
void | setLegendIconSize (const QSize &) |
void | setRenderHint (RenderHint, bool on=true) |
void | setRenderThreadCount (uint numThreads) |
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) |
Set the z value. More... | |
void | show () |
Show the item. More... | |
bool | testItemAttribute (ItemAttribute) const |
bool | testItemInterest (ItemInterest) const |
bool | testRenderHint (RenderHint) const |
const QwtText & | title () const |
virtual void | updateLegend (const QwtPlotItem *, const QList< QwtLegendData > &) |
Update the item to changes of the legend info. More... | |
int | xAxis () const |
Return xAxis. More... | |
int | yAxis () const |
Return yAxis. More... | |
double | z () const |
virtual | ~QwtPlotItem () |
Destroy the QwtPlotItem. More... | |
Public Member Functions inherited from QwtSeriesStore< QPointF > | |
QwtSeriesData< QPointF > * | data () |
const QwtSeriesData< QPointF > * | data () const |
virtual QRectF | dataRect () const |
virtual size_t | dataSize () const |
QwtSeriesStore () | |
Constructor The store contains no series. More... | |
QPointF | sample (int index) const |
void | setData (QwtSeriesData< QPointF > *series) |
virtual void | setRectOfInterest (const QRectF &rect) |
QwtSeriesData< QPointF > * | swapData (QwtSeriesData< QPointF > *series) |
~QwtSeriesStore () | |
Destructor. More... | |
Protected Member Functions | |
void | closePolyline (QPainter *, const QwtScaleMap &, const QwtScaleMap &, QPolygonF &) const |
Complete a polygon to be a closed polygon including the area between the original polygon and the baseline. More... | |
virtual void | drawCurve (QPainter *p, int style, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
Draw the line part (without symbols) of a curve interval. More... | |
virtual void | drawDots (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawLines (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
Draw lines. More... | |
virtual void | drawSteps (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawSticks (QPainter *p, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | drawSymbols (QPainter *p, const QwtSymbol &, const QwtScaleMap &xMap, const QwtScaleMap &yMap, const QRectF &canvasRect, int from, int to) const |
virtual void | fillCurve (QPainter *, const QwtScaleMap &, const QwtScaleMap &, const QRectF &canvasRect, QPolygonF &) const |
void | init () |
Initialize internal members. More... | |
Protected Member Functions inherited from QwtPlotSeriesItem | |
virtual void | dataChanged () |
dataChanged() indicates, that the series has been changed. More... | |
Protected Member Functions inherited from QwtPlotItem | |
QwtGraphic | defaultIcon (const QBrush &, const QSizeF &) const |
Return a default icon from a brush. More... | |
Protected Member Functions inherited from QwtAbstractSeriesStore | |
virtual | ~QwtAbstractSeriesStore () |
Destructor. More... | |
Private Attributes | |
PrivateData * | d_data |
A plot item, that represents a series of points.
A curve is the representation of a series of points in the x-y plane. It supports different display styles, interpolation ( f.e. spline ) and symbols.
Definition at line 55 of file qwt_plot_curve.h.
typedef QFlags<CurveAttribute> QwtPlotCurve::CurveAttributes |
Curve attributes.
Definition at line 134 of file qwt_plot_curve.h.
typedef QFlags<LegendAttribute> QwtPlotCurve::LegendAttributes |
Legend attributes.
Definition at line 170 of file qwt_plot_curve.h.
typedef QFlags<PaintAttribute> QwtPlotCurve::PaintAttributes |
Paint attributes.
Definition at line 237 of file qwt_plot_curve.h.
Attribute for drawing the curve
Enumerator | |
---|---|
Inverted |
For QwtPlotCurve::Steps only. Draws a step function from the right to the left. |
Fitted |
Only in combination with QwtPlotCurve::Lines A QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.
|
Definition at line 112 of file qwt_plot_curve.h.
Curve styles.
Enumerator | |
---|---|
NoCurve |
Don't draw a curve. Note: This doesn't affect the symbols. |
Lines |
Connect the points with straight lines. The lines might be interpolated depending on the 'Fitted' attribute. Curve fitting can be configured using setCurveFitter(). |
Sticks |
Draw vertical or horizontal sticks ( depending on the orientation() ) from a baseline which is defined by setBaseline(). |
Steps |
Connect the points with a step function. The step function is drawn from the left to the right or vice versa, depending on the QwtPlotCurve::Inverted attribute. |
Dots |
Draw dots at the locations of the data points. Note: This is different from a dotted line (see setPen()), and faster as a curve in QwtPlotCurve::NoStyle style and a symbol painting a point. |
LinesAndDots | |
UserCurve |
Styles >= QwtPlotCurve::UserCurve are reserved for derived classes of QwtPlotCurve that overload drawCurve() with additional application specific curve types. |
Definition at line 63 of file qwt_plot_curve.h.
Attributes how to represent the curve on the legend
Enumerator | |
---|---|
LegendNoAttribute |
QwtPlotCurve tries to find a color representing the curve and paints a rectangle with it. |
LegendShowLine |
If the style() is not QwtPlotCurve::NoCurve a line is painted with the curve pen(). |
LegendShowSymbol |
If the curve has a valid symbol it is painted. |
LegendShowBrush |
If the curve has a brush a rectangle filled with the curve brush() is painted. |
Definition at line 143 of file qwt_plot_curve.h.
Attributes to modify the drawing algorithm. The default setting enables ClipPolygons | FilterPoints
Enumerator | |
---|---|
ClipPolygons |
Clip polygons before painting them. In situations, where points are far outside the visible area (f.e when zooming deep) this might be a substantial improvement for the painting performance |
FilterPoints |
Tries to reduce the data that has to be painted, by sorting out duplicates, or paintings outside the visible area. Might have a notable impact on curves with many close points. Only a couple of very basic filtering algorithms are implemented. |
MinimizeMemory |
Minimize memory usage that is temporarily needed for the translated points, before they get painted. This might slow down the performance of painting |
ImageBuffer |
Render the points to a temporary image and paint the image. This is a very special optimization for Dots style, when having a huge amount of points. With a reasonable number of points QPainter::drawPoints() will be faster. |
FilterPointsAggressive |
More aggressive point filtering trying to filter out intermediate points, accepting minor visual differences. Has only an effect, when drawing the curve to a paint device in integer coordinates ( f.e. all widgets on screen ) using the fact, that consecutive points are often mapped to the same x or y coordinate. Each chunk of samples mapped to the same coordinate can be reduced to 4 points ( first, min, max last ). In the worst case the polygon to be rendered will be 4 times the width of the plot canvas. The algorithm is very fast and effective for huge datasets, and can be used inside a replot cycle.
|
Definition at line 178 of file qwt_plot_curve.h.
|
explicit |
|
explicit |
|
virtual |
Destructor.
Definition at line 136 of file qwt_plot_curve.cpp.
double QwtPlotCurve::baseline | ( | ) | const |
Definition at line 1068 of file qwt_plot_curve.cpp.
const QBrush & QwtPlotCurve::brush | ( | ) | const |
Definition at line 346 of file qwt_plot_curve.cpp.
|
protected |
Complete a polygon to be a closed polygon including the area between the original polygon and the baseline.
painter | Painter |
xMap | X map |
yMap | Y map |
polygon | Polygon to be completed |
Definition at line 962 of file qwt_plot_curve.cpp.
|
virtual |
Find the closest curve point for a specific position
pos | Position, where to look for the closest curve point |
dist | If dist != NULL, closestPoint() returns the distance between the position and the closest curve point |
Definition at line 1084 of file qwt_plot_curve.cpp.
QwtCurveFitter * QwtPlotCurve::curveFitter | ( | ) | const |
Get the curve fitter. If curve fitting is disabled NULL is returned.
Definition at line 905 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw the line part (without symbols) of a curve interval.
painter | Painter |
style | curve style, see QwtPlotCurve::CurveStyle |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
Definition at line 412 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw dots
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
Definition at line 673 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw lines.
If the CurveAttribute Fitted is enabled a QwtCurveFitter tries to interpolate/smooth the curve, before it is painted.
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
Definition at line 477 of file qwt_plot_curve.cpp.
|
virtual |
Draw an interval of the curve
painter | Painter |
xMap | Maps x-values into pixel coordinates. |
yMap | Maps y-values into pixel coordinates. |
canvasRect | Contents rectangle of the canvas |
from | Index of the first point to be painted |
to | Index of the last point to be painted. If to < 0 the curve will be painted to its last point. |
Implements QwtPlotSeriesItem.
Definition at line 364 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw step function
The direction of the steps depends on Inverted attribute.
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
Definition at line 774 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw sticks
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | index of the first point to be painted |
to | index of the last point to be painted |
Definition at line 620 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Draw symbols
painter | Painter |
symbol | Curve symbol |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
from | Index of the first point to be painted |
to | Index of the last point to be painted |
Definition at line 1012 of file qwt_plot_curve.cpp.
|
protectedvirtual |
Fill the area between the curve and the baseline with the curve brush
painter | Painter |
xMap | x map |
yMap | y map |
canvasRect | Contents rectangle of the canvas |
polygon | Polygon - will be modified ! |
Definition at line 922 of file qwt_plot_curve.cpp.
|
protected |
Initialize internal members.
Definition at line 142 of file qwt_plot_curve.cpp.
|
virtual |
index | Index of the legend entry ( ignored as there is only one ) |
size | Icon size |
Reimplemented from QwtPlotItem.
Definition at line 1128 of file qwt_plot_curve.cpp.
|
inline |
boundingRect().right()
Definition at line 342 of file qwt_plot_curve.h.
|
inline |
boundingRect().bottom()
Definition at line 354 of file qwt_plot_curve.h.
|
inline |
boundingRect().left()
Definition at line 336 of file qwt_plot_curve.h.
|
inline |
boundingRect().top()
Definition at line 348 of file qwt_plot_curve.h.
const QPen & QwtPlotCurve::pen | ( | ) | const |
Definition at line 311 of file qwt_plot_curve.cpp.
|
virtual |
Reimplemented from QwtPlotItem.
Definition at line 154 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setBaseline | ( | double | value | ) |
Set the value of the baseline.
The baseline is needed for filling the curve with a brush or the Sticks drawing style.
The interpretation of the baseline depends on the orientation(). With Qt::Horizontal, the baseline is interpreted as a horizontal line at y = baseline(), with Qt::Vertical, it is interpreted as a vertical line at x = baseline().
The default value is 0.0.
value | Value of the baseline |
Definition at line 1055 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setBrush | ( | const QBrush & | brush | ) |
Assign a brush.
In case of brush.style() != QBrush::NoBrush and style() != QwtPlotCurve::Sticks the area between the curve and the baseline will be filled.
In case !brush.color().isValid() the area will be filled by pen.color(). The fill algorithm simply connects the first and the last curve point to the baseline. So the curve data has to be sorted (ascending or descending).
brush | New brush |
Definition at line 331 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setCurveAttribute | ( | CurveAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute for drawing the curve
attribute | Curve attribute |
on | On/Off |
/sa testCurveAttribute(), setCurveFitter()
Definition at line 852 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setCurveFitter | ( | QwtCurveFitter * | curveFitter | ) |
Assign a curve fitter
The curve fitter "smooths" the curve points, when the Fitted CurveAttribute is set. setCurveFitter(NULL) also disables curve fitting.
The curve fitter operates on the translated points ( = widget coordinates) to be functional for logarithmic scales. Obviously this is less performant for fitting algorithms, that reduce the number of points.
For situations, where curve fitting is used to improve the performance of painting huge series of points it might be better to execute the fitter on the curve points once and to cache the result in the QwtSeriesData object.
curveFitter() | Curve fitter |
Definition at line 891 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setLegendAttribute | ( | LegendAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute how to draw the legend icon
attribute | Attribute |
on | On/Off /sa testLegendAttribute(). legendIcon() |
Definition at line 190 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setPaintAttribute | ( | PaintAttribute | attribute, |
bool | on = true |
||
) |
Specify an attribute how to draw the curve
attribute | Paint attribute |
on | On/Off |
Definition at line 166 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setPen | ( | const QColor & | color, |
qreal | width = 0.0 , |
||
Qt::PenStyle | style = Qt::SolidLine |
||
) |
Build and assign a pen
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.
color | Pen color |
width | Pen width |
style | Pen style |
Definition at line 285 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setPen | ( | const QPen & | pen | ) |
void QwtPlotCurve::setRawSamples | ( | const double * | xData, |
const double * | yData, | ||
int | size | ||
) |
Initialize the data by pointing to memory blocks which are not managed by QwtPlotCurve.
setRawSamples is provided for efficiency. It is important to keep the pointers during the lifetime of the underlying QwtCPointerData class.
xData | pointer to x data |
yData | pointer to y data |
size | size of x and y |
Definition at line 1239 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setSamples | ( | const double * | xData, |
const double * | yData, | ||
int | size | ||
) |
Set data by copying x- and y-values from specified memory blocks. Contrary to setRawSamples(), this function makes a 'deep copy' of the data.
xData | pointer to x values |
yData | pointer to y values |
size | size of xData and yData |
Definition at line 1256 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setSamples | ( | const QVector< double > & | xData, |
const QVector< double > & | yData | ||
) |
Initialize data with x- and y-arrays (explicitly shared)
xData | x data |
yData | y data |
Definition at line 1270 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setSamples | ( | const QVector< QPointF > & | samples | ) |
Initialize data with an array of points.
samples | Vector of points |
Definition at line 1203 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setSamples | ( | QwtSeriesData< QPointF > * | data | ) |
Assign a series of points
setSamples() is just a wrapper for setData() without any additional value - beside that it is easier to find for the developer.
data | Data |
Definition at line 1218 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setStyle | ( | CurveStyle | style | ) |
Set the curve's drawing style
style | Curve style |
Definition at line 219 of file qwt_plot_curve.cpp.
void QwtPlotCurve::setSymbol | ( | QwtSymbol * | symbol | ) |
Assign a symbol.
The curve will take the ownership of the symbol, hence the previously set symbol will be delete by setting a new one. If symbol
is NULL
no symbol will be drawn.
symbol | Symbol |
Definition at line 249 of file qwt_plot_curve.cpp.
QwtPlotCurve::CurveStyle QwtPlotCurve::style | ( | ) | const |
const QwtSymbol * QwtPlotCurve::symbol | ( | ) | const |
Definition at line 267 of file qwt_plot_curve.cpp.
bool QwtPlotCurve::testCurveAttribute | ( | CurveAttribute | attribute | ) | const |
Definition at line 869 of file qwt_plot_curve.cpp.
bool QwtPlotCurve::testLegendAttribute | ( | LegendAttribute | attribute | ) | const |
Definition at line 208 of file qwt_plot_curve.cpp.
bool QwtPlotCurve::testPaintAttribute | ( | PaintAttribute | attribute | ) | const |
Definition at line 178 of file qwt_plot_curve.cpp.
|
private |
Definition at line 331 of file qwt_plot_curve.h.