JKQTPlotter trunk/v5.0.0
an extensive Qt5+Qt6 Plotter framework (including a feature-richt plotter widget, a speed-optimized, but limited variant and a LaTeX equation renderer!), written fully in C/C++ and without external dependencies
Loading...
Searching...
No Matches

extends JKQTPEvaluatedFunctionGraphBase with some basic properties (e.g. function parameters) for a second function that calculates an error (for drawing error indicators) More...

#include <jkqtpevaluatedfunctionbase.h>

Inheritance diagram for JKQTPEvaluatedFunctionWithErrorsGraphBase:
[legend]
Collaboration diagram for JKQTPEvaluatedFunctionWithErrorsGraphBase:
[legend]

Public Slots

void setErrorParameterColumn (int __value)
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function
 
void setErrorParameterColumn (size_t __value)
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function
 
void setErrorParams (const QVector< double > &errorParams)
 sets the error params as a pointer to an internal COPY of the given vector (not the data of the vector, as then the size would be unknown!!!)
 
void setErrorParamsV (double p1)
 set the internal error function parameters to {p1}
 
void setErrorParamsV (double p1, double p2)
 set the internal error function parameters to {p1,p2}
 
void setErrorParamsV (double p1, double p2, double p3)
 set the internal error function parameters to {p1,p2,p3}
 
void setErrorParamsV (double p1, double p2, double p3, double p4)
 set the internal error function parameters to {p1,p2,p3,p4}
 
void setErrorParamsV (double p1, double p2, double p3, double p4, double p5)
 set the internal error function parameters to {p1,p2,p3,p4,p5}
 
- Public Slots inherited from JKQTPEvaluatedFunctionGraphBase
void setDataCleanupMaxAllowedAngleDegree (double __value)
 in the clean-up step of plot-data creation, a point is removed from the data, if it caused its neighboring line-segments to form an angle less than this value, given in degrees.
 
void setDisplaySamplePoints (bool __value)
 if true [default: off] display the points where the function has been sampled
 
void setMaxRefinementDegree (const unsigned int &__value)
 the maximum number of recursive refinement steps
 
void setMinPixelPerSample (double __value)
 create one sample at least every minPixelPerSample pixels
 
void setMinSamples (const unsigned int &__value)
 the minimum number of points to evaluate the function at
 
void setParameterColumn (int __value)
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the plot function
 
void setParameterColumn (size_t __value)
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the plot function
 
void setParamsV (double p1)
 set an internal parameter vector as function parameters, initialized with {p1}
 
void setParamsV (double p1, double p2)
 set an internal parameter vector as function parameters, initialized with {p1,p2}
 
void setParamsV (double p1, double p2, double p3)
 set an internal parameter vector as function parameters, initialized with {p1,p2,p3}
 
void setParamsV (double p1, double p2, double p3, double p4)
 set an internal parameter vector as function parameters, initialized with {p1,p2,p3,p4}
 
void setParamsV (double p1, double p2, double p3, double p4, double p5)
 set an internal parameter vector as function parameters, initialized with {p1,p2,p3,p4,p5}
 
void setSlopeTolerance (double __value)
 the tolerance for the difference of two subsequent slopes
 
- Public Slots inherited from JKQTPPlotElement
void setHighlighted (bool __value)
 sets whether the graph is drawn in a highlighted style in the plot

 
virtual void setTitle (const QString &__value)
 sets the title of the plot (for display in key!).
 
void setVisible (bool __value)
 sets whether the graph is visible in the plot

 

Public Member Functions

 JKQTPEvaluatedFunctionWithErrorsGraphBase (JKQTBasePlotter *parent=nullptr)
 class constructor
 
 JKQTPEvaluatedFunctionWithErrorsGraphBase (JKQTPlotter *parent)
 class constructor
 
virtual ~JKQTPEvaluatedFunctionWithErrorsGraphBase ()
 class destructor
 
int getErrorParameterColumn () const
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function
 
QVector< double > & getInternalErrorParams ()
 returns the currently set internal parameter vector
 
const QVector< double > & getInternalErrorParams () const
 returns the currently set internal parameter vector
 
virtual bool usesColumn (int c) const override
 returns true if the given column is used by the graph
 
- Public Member Functions inherited from JKQTPEvaluatedFunctionGraphBase
 JKQTPEvaluatedFunctionGraphBase (JKQTBasePlotter *parent=nullptr)
 class constructor
 
 JKQTPEvaluatedFunctionGraphBase (JKQTPlotter *parent)
 class constructor
 
virtual ~JKQTPEvaluatedFunctionGraphBase ()
 class destructor
 
double getDataCleanupMaxAllowedAngleDegree () const
 in the clean-up step of plot-data creation, a point is removed from the data, if it caused its neighboring line-segments to form an angle less than this value, given in degrees.
 
bool getDisplaySamplePoints () const
 if true [default: off] display the points where the function has been sampled
 
QVector< double > & getInternalParams ()
 returns the currently set internal parameter vector
 
const QVector< double > & getInternalParams () const
 returns the currently set internal parameter vector
 
unsigned int getMaxRefinementDegree () const
 the maximum number of recursive refinement steps
 
double getMinPixelPerSample () const
 create one sample at least every minPixelPerSample pixels
 
unsigned int getMinSamples () const
 the minimum number of points to evaluate the function at
 
int getParameterColumn () const
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the plot function
 
double getSlopeTolerance () const
 the tolerance for the difference of two subsequent slopes
 
virtual bool getXMinMax (double &minx, double &maxx, double &smallestGreaterZero) override
 get the maximum and minimum x-value of the graph
 
virtual bool getYMinMax (double &miny, double &maxy, double &smallestGreaterZero) override
 get the maximum and minimum y-value of the graph
 
void setCopiedParams (const double *params, int N)
 sets the params from a copy of the given array of length N
 
virtual void setParams (const QVector< double > &params)
 sets the params as a pointer to an internal COPY of the given vector (not the data of the vector, as then the size would be unknown!!!)
 
- Public Member Functions inherited from JKQTPGraph
 JKQTPGraph (JKQTBasePlotter *parent=nullptr)
 class constructor
 
virtual ~JKQTPGraph ()=default
 default wirtual destructor
 
- Public Member Functions inherited from JKQTPPlotElement
 JKQTPPlotElement (JKQTBasePlotter *parent=nullptr)
 class constructor
 
virtual ~JKQTPPlotElement ()=default
 default wirtual destructor
 
QPointF backTransform (const QPointF &x) const
 tool routine that back-transforms a QPointF according to the parent's transformation rules (pixels --> plot coordinate)
 
QPointF backTransform (double x, double y) const
 tool routine that back-transforms a QPointF according to the parent's transformation rules (pixels --> plot coordinate)
 
double backtransformX (double x) const
 tool routine that backtransforms an x-coordinate (pixels --> plot coordinate) for this plot element, uses the axis referenced in xAxisRef
 
double backtransformY (double y) const
 tool routine that backtransforms a y-coordinate (pixels --> plot coordinate) for this plot element, uses the axis referenced in yAxisRef
 
virtual void draw (JKQTPEnhancedPainter &painter)=0
 plots the graph to the plotter object specified as parent
 
virtual void drawKeyMarker (JKQTPEnhancedPainter &painter, const QRectF &rect)=0
 plots a key marker inside the specified rectangle rect
 
virtual void drawOutside (JKQTPEnhancedPainter &painter, QRect leftSpace, QRect rightSpace, QRect topSpace, QRect bottomSpace)
 plots outside the actual plot field of view (e.g. color bars, scale bars, ...)
 
QImage generateKeyMarker (QSize size=QSize(16, 16))
 returns an image with a key marker inside

 
virtual QColor getKeyLabelColor () const =0
 returns the color to be used for the key label
 
virtual void getOutsideSize (JKQTPEnhancedPainter &painter, int &leftSpace, int &rightSpace, int &topSpace, int &bottomSpace)
 if the graph plots outside the actual plot field of view (e.g. color bars, scale bars, ...)
 
JKQTBasePlottergetParent ()
 returns the parent painter class
 
const JKQTBasePlottergetParent () const
 returns the parent painter class
 
QString getTitle () const
 returns the the title of the plot

 
const JKQTPCoordinateAxisgetXAxis () const
 returns the actual x-Axis-object from the parent plotter, referenced in xAxisRef
 
JKQTPCoordinateAxisRef getXAxisRef () const
 indicates which coordinate axis to use for coordinate transforms in x-direction
 
const JKQTPCoordinateAxisgetYAxis () const
 returns the actual y-Axis-object from the parent plotter, referenced in yAxisRef
 
JKQTPCoordinateAxisRef getYAxisRef () const
 indicates which coordinate axis to use for coordinate transforms in y-direction
 
virtual double hitTest (const QPointF &posSystem, QPointF *closestSpotSystem=nullptr, QString *label=nullptr, HitTestMode mode=HitTestXY) const
 returns the closest distance of the plot element to the (screen pixel) position pos, or NAN
 
bool isHighlighted () const
 returns whether the graph is shown in a highlighted style in the plot

 
bool isVisible () const
 returns whether the graph is visible in the plot

 
void setAxes (JKQTPCoordinateAxisRef ref)
 set the coordinate axes to use for this plot element
 
virtual void setParent (JKQTBasePlotter *parent)
 sets the parent painter class
 
virtual void setParent (JKQTPlotter *parent)
 sets the parent painter class
 
void setXAxis (JKQTPCoordinateAxisRef ref)
 indicates which coordinate axis to use for coordinate transforms in x-direction
 
void setYAxis (JKQTPCoordinateAxisRef ref)
 indicates which coordinate axis to use for coordinate transforms in y-direction
 
QPointF transform (const QPointF &x) const
 tool routine that transforms a QPointF according to the parent's transformation rules (plot coordinate --> pixels)
 
QPolygonF transform (const QPolygonF &x) const
 tool routine that transforms a QPolygonF according to the parent's transformation rules (plot coordinate --> pixels)
 
QPointF transform (double x, double y) const
 tool routine that transforms a QPointF according to the parent's transformation rules (plot coordinate --> pixels)
 
QPainterPath transformToLinePath (const QPolygonF &x) const
 tool routine that transforms a QPolygonF according to the parent's transformation rules and returns a (non-closed) path consisting of lines (plot coordinate --> pixels)
 
QVector< double > transformX (const QVector< double > &x) const
 transform all x-coordinates in a vector x
 
double transformX (double x) const
 tool routine that transforms an x-coordinate (plot coordinate --> pixels) for this plot element, uses the axis referenced in xAxisRef
 
QVector< double > transformY (const QVector< double > &x) const
 transform all y-coordinates in a vector x
 
double transformY (double y) const
 tool routine that transforms a y-coordinate (plot coordinate --> pixels) for this plot element, uses the axis referenced in yAxisRef
 

Protected Member Functions

virtual std::function< QPointF(double)> buildErrorFunctorSpec ()=0
 same as JKQTPEvaluatedFunctionGraphBase::buildPlotFunctorSpec(), but for error functions.
 
virtual void collectParameters () override
 ensure that current function parameters for plotFunction (which may stem from different sources, as direct data, a datastore column ...) are stored in iparams and ierrorparams
 
- Protected Member Functions inherited from JKQTPEvaluatedFunctionGraphBase
virtual PlotFunctorSpec buildPlotFunctorSpec ()=0
 this function returns a functor that is used to generate the plot data in coordinate space, based on a range of the dependent variable in coordinate space. In addition it also contains the value range over which to evaluate the functor PlotFunctorSpec::func
 
virtual void createPlotData (bool collectParams=true)
 fill the data array with data from the function plotFunction
 
void drawSamplePoints (JKQTPEnhancedPainter &painter, QColor graphColor)
 draw all the sample points in data as small symbols
 
- Protected Member Functions inherited from JKQTPGraph
virtual void drawErrorsAfter (JKQTPEnhancedPainter &)
 this function is used to plot error inidcators after plotting the graphs.
 
virtual void drawErrorsBefore (JKQTPEnhancedPainter &)
 this function is used to plot error inidcators before plotting the graphs.
 
bool getDataMinMax (int column, double &minx, double &maxx, double &smallestGreaterZero)
 get the maximum and minimum value of the given column
 
- Protected Member Functions inherited from JKQTPPlotElement
void addHitTestData (const HitTestLocation &loc)
 clear the internal datastore for hitTest()
 
void addHitTestData (const QPointF &pos_, const QString &label_)
 clear the internal datastore for hitTest()
 
void addHitTestData (const QPointF &pos_, int index_, const QString &label_)
 clear the internal datastore for hitTest()
 
void addHitTestData (const QPointF &pos_, int index_=-1, const JKQTPDatastore *datastore=nullptr)
 clear the internal datastore for hitTest(), this variant uses formatHitTestDefaultLabel() to auto-generate the label
 
void addHitTestData (double x_, double y_, const QString &label_)
 add a new point on the graph to the internal datastore for hitTest()
 
void addHitTestData (double x_, double y_, int index_, const QString &label_)
 clear the internal datastore for hitTest()
 
void addHitTestData (double x_, double y_, int index_=-1, const JKQTPDatastore *datastore=nullptr)
 add a new point on the graph to the internal datastore for hitTest(), this variant uses formatHitTestDefaultLabel() to auto-generate the label
 
void clearHitTestData ()
 clear the internal datastore for hitTest()
 
virtual QString formatHitTestDefaultLabel (double x, double y, int index=-1, const JKQTPDatastore *datastore=nullptr) const
 tool-function for hitTest(), which formats a default label, taking into account the x- and y-position (both provided) and optionally the errors of these positions.
 
void reserveHitTestData (int points)
 reserve list entries for up to points graph points in the internal datastore for hitTest()
 
QString xFloatToString (double v, int past_comma=-1) const
 converts a x-value v into a string, taking into account the type of x-axis
 
QString yFloatToString (double v, int past_comma=-1) const
 converts a x-value v into a string, taking into account the type of x-axis
 

Protected Attributes

int errorParameterColumn
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function
 
QVector< double > ierrorparams
 internal storage for the current error function parameters for errorPlotFunction (which may stem from different sources, as direct data, a datastore column ...)
 
- Protected Attributes inherited from JKQTPEvaluatedFunctionGraphBase
QVector< QPointF > data
 plot data calculated by createPlotData(), i.e. the datapoints $ \mbox{transform}\left(x, y=f(x, \vec{p})\right) $ to be plotted
 
double dataCleanupMaxAllowedAngleDegree
 in the clean-up step of plot-data creation, a point is removed from the data, if it caused its neighboring line-segments to form an angle less than this value, given in degrees.
 
bool displaySamplePoints
 if true [default: off] display the points where the function has been sampled
 
QVector< double > iparams
 internal storage for the current function parameters for plotFunction (which may stem from different sources, as direct data, a datastore column ...)
 
unsigned int maxRefinementDegree
 the maximum number of recursive refinement steps
 
double minPixelPerSample
 create one sample at least every minPixelPerSample pixels
 
unsigned int minSamples
 the minimum number of points to evaluate the function at
 
int parameterColumn
 if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the plot function
 
double slopeTolerance
 the tolerance for the difference of two subsequent slopes
 
- Protected Attributes inherited from JKQTPPlotElement
QVector< HitTestLocationm_hitTestData
 dataset with graph-points and associated data from the function hitTest()
 
JKQTBasePlotterparent
 the plotter object this object belongs to
 
int parentPlotStyle
 internal storage for the used parent plot style
 

Additional Inherited Members

- Public Types inherited from JKQTPPlotElement
enum  HitTestMode {
  HitTestXY ,
  HitTestXOnly ,
  HitTestYOnly
}
 modes of operation for the function hitTest() More...
 
- Properties inherited from JKQTPPlotElement
bool highlighted
 indicates whether the graph is shown in a "highlghted" in the plot
 
QString title
 title of the plot (for display in key!). If no title is supplied, no key entry is drawn.
 
bool visible
 indicates whether the graph is visible in the plot
 
JKQTPCoordinateAxisRef xAxisRef
 indicates which coordinate axis to use for coordinate transforms in x-direction
 
JKQTPCoordinateAxisRef yAxisRef
 indicates which coordinate axis to use for coordinate transforms in y-direction
 

Detailed Description

extends JKQTPEvaluatedFunctionGraphBase with some basic properties (e.g. function parameters) for a second function that calculates an error (for drawing error indicators)

When implementing this, you will have to implement buildErrorFunctorSpec() in addition to JKQTPEvaluatedFunctionGraphBase::buildPlotFunctorSpec()!

See also
JKQTPEvaluatedFunctionGraphBase

Constructor & Destructor Documentation

◆ JKQTPEvaluatedFunctionWithErrorsGraphBase() [1/2]

JKQTPEvaluatedFunctionWithErrorsGraphBase::JKQTPEvaluatedFunctionWithErrorsGraphBase ( JKQTBasePlotter parent = nullptr)
explicit

class constructor

◆ JKQTPEvaluatedFunctionWithErrorsGraphBase() [2/2]

JKQTPEvaluatedFunctionWithErrorsGraphBase::JKQTPEvaluatedFunctionWithErrorsGraphBase ( JKQTPlotter parent)
explicit

class constructor

◆ ~JKQTPEvaluatedFunctionWithErrorsGraphBase()

virtual JKQTPEvaluatedFunctionWithErrorsGraphBase::~JKQTPEvaluatedFunctionWithErrorsGraphBase ( )
virtual

class destructor

Member Function Documentation

◆ buildErrorFunctorSpec()

virtual std::function< QPointF(double)> JKQTPEvaluatedFunctionWithErrorsGraphBase::buildErrorFunctorSpec ( )
protectedpure virtual

same as JKQTPEvaluatedFunctionGraphBase::buildPlotFunctorSpec(), but for error functions.

The functor, returned by this function should calculate the error of the function (in x- and y-direction) for every value $ t $ of the actual function.

The parameter range is the same as for JKQTPEvaluatedFunctionGraphBase::buildPlotFunctorSpec()

See also
JKQTPEvaluatedFunctionGraphBase::buildPlotFunctorSpec()

Implemented in JKQTPXFunctionLineGraph, JKQTPYFunctionLineGraph, JKQTPXParsedFunctionLineGraph, and JKQTPYParsedFunctionLineGraph.

◆ collectParameters()

virtual void JKQTPEvaluatedFunctionWithErrorsGraphBase::collectParameters ( )
overrideprotectedvirtual

ensure that current function parameters for plotFunction (which may stem from different sources, as direct data, a datastore column ...) are stored in iparams and ierrorparams

Reimplemented from JKQTPEvaluatedFunctionGraphBase.

◆ getErrorParameterColumn()

int JKQTPEvaluatedFunctionWithErrorsGraphBase::getErrorParameterColumn ( ) const

if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function

◆ getInternalErrorParams() [1/2]

QVector< double > & JKQTPEvaluatedFunctionWithErrorsGraphBase::getInternalErrorParams ( )

returns the currently set internal parameter vector

◆ getInternalErrorParams() [2/2]

const QVector< double > & JKQTPEvaluatedFunctionWithErrorsGraphBase::getInternalErrorParams ( ) const

returns the currently set internal parameter vector

◆ setErrorParameterColumn [1/2]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParameterColumn ( int  __value)
slot

if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function

◆ setErrorParameterColumn [2/2]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParameterColumn ( size_t  __value)
slot

if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function

◆ setErrorParams

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParams ( const QVector< double > &  errorParams)
slot

sets the error params as a pointer to an internal COPY of the given vector (not the data of the vector, as then the size would be unknown!!!)

◆ setErrorParamsV [1/5]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParamsV ( double  p1)
slot

set the internal error function parameters to {p1}

◆ setErrorParamsV [2/5]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParamsV ( double  p1,
double  p2 
)
slot

set the internal error function parameters to {p1,p2}

◆ setErrorParamsV [3/5]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParamsV ( double  p1,
double  p2,
double  p3 
)
slot

set the internal error function parameters to {p1,p2,p3}

◆ setErrorParamsV [4/5]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParamsV ( double  p1,
double  p2,
double  p3,
double  p4 
)
slot

set the internal error function parameters to {p1,p2,p3,p4}

◆ setErrorParamsV [5/5]

void JKQTPEvaluatedFunctionWithErrorsGraphBase::setErrorParamsV ( double  p1,
double  p2,
double  p3,
double  p4,
double  p5 
)
slot

set the internal error function parameters to {p1,p2,p3,p4,p5}

◆ usesColumn()

virtual bool JKQTPEvaluatedFunctionWithErrorsGraphBase::usesColumn ( int  c) const
overridevirtual

returns true if the given column is used by the graph

This virtual function indicates whether a given column is used by this graph. Override this function in your derived graphs to indicate to JKQTPlotter / JKQTBasePlotter , which columns from the internal JKQTPDatastore are actually used. This information can be used e.g. for graph-specific data-export.

Reimplemented from JKQTPEvaluatedFunctionGraphBase.

Member Data Documentation

◆ errorParameterColumn

int JKQTPEvaluatedFunctionWithErrorsGraphBase::errorParameterColumn
protected

if set, the values from this datatsore column are used for the parameters p1 , p2 , p3 , ... of the error plot function

◆ ierrorparams

QVector<double> JKQTPEvaluatedFunctionWithErrorsGraphBase::ierrorparams
protected

internal storage for the current error function parameters for errorPlotFunction (which may stem from different sources, as direct data, a datastore column ...)


The documentation for this class was generated from the following file: