Status & Roadmap
Authors & License
Funding Ultimate++
Search on this site

SourceForge.net Logo

ScatterDraw Overview


ScatterCtrl_Demo package does a visual review of ScatterDraw and ScatterCtrl class features. Here there are some screenshots:



General view


Demo program contains control samples listed in left table.


All of them have different export possibilities like:

Print Preview

Export as PNG

Export as JPEG

Export as EMF

Copy to Clipboard


ScatterCtrl uses Painter or Draw as selected in Painting Mode.



Basic Test


ScatterDraw lets to show different data series changing various parameters like color, line width or dot style.





Using PlotFunction() it is possible to directly draw functions instead of just stored data.



Parametric Functions


While PlotFunction() functions just return the vertical axis, PlotParaFunction() functions return the XY coordinates of every point.


This options lets full freedom inserting XY series.





ScatterDraw lets to insert X and Y labels, XY scaling and range, point format and size and standard or user defined axis labels formating.


In addition SetMouseHandling(true) lets to use the mouse to zoom and move the graphs in X axis.





ScatterCtrl is not a static control and it easily lets to include moving series.





Versatile axis scaling and labeling through cbModifFormatX and cbModifFormatY lets to include not only time and date axis but also logarithmic ones.





Series dynamic handling is easy. This demo lets the user to add and remove series at run time.



Secondary Y axis


It is possible to add a secondary right side vertical Y axis and scale data series to it. All secondary axis texts are in italic.


In addition SetMouseHandling(true, true) lets to use the mouse to zoom and move the graphs in X and Y axis.



Big datasets


Big datasets are hard to handle. However there are two functions that speed up dramatically ScatterDraw/ScatterCtrl response in X axis sequential datasets like time series:


SetSequentialX: Indicates that the data has been sequentially inserted following X axis

SetFastViewX: Indicates that it will be viewed a point per horizontal pixel. This point will be the average of all data that is in that pixel




User Graphs


It is easy to create new series and mark plotting routines.


This a simple sample of deriving SeriesPlot and MarkPlot into new user plotting primitives.




Trend Lines


It is possible to fit a user data series into a known equation linear (LinearEquation), polynomial (PolynomialEquation), Fourier (FourierEquation) or others.


Just declare the equation type and fit it to the data series. This equation behaves as any other DataSeries so you can have full access to it including adding it to ScatterDraw and ScatterCtrl.




User equation


User entered equations by text can be plotted. In addition, as they are also Dataset, raw data series can be Fit() to user equations.


UserEquation is based on EvalExpr class.




Linked controls


It is possible to fit different plots with LinkedWith() so that any scroll or zoom in any graph will affect the rest of them.



Do you want to contribute?