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}
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
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
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
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 > ¶ms)
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!!!)
JKQTPGraph (JKQTBasePlotter *parent =nullptr)
class constructor
virtual ~JKQTPGraph ()=default
default wirtual destructor
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, ...)
JKQTBasePlotter * getParent ()
returns the parent painter class
const JKQTBasePlotter * getParent () const
returns the parent painter class
QString getTitle () const
returns the the title of the plot
const JKQTPCoordinateAxis * getXAxis () 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 JKQTPCoordinateAxis * getYAxis () 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
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
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
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
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
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 ...)
QVector< QPointF > data
plot data calculated by createPlotData() , i.e. the datapoints 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
QVector< HitTestLocation > m_hitTestData
dataset with graph-points and associated data from the function hitTest()
JKQTBasePlotter * parent
the plotter object this object belongs to
int parentPlotStyle
internal storage for the used parent plot style