/*! \defgroup jkqtplotter_basicprinciples Basic Principles of JKQTPlotter \ingroup jkqtplotter_general This page documents some basic principles behind the design of the JKQTPlotter library. \tableofcontents \section jkqtplotter_basicprinciples_datastorage Datastorage Data is stored in an (internal) instance of JKQTPDatastore, which is accessible through JKQTPlotter::getDatastore() or JKQTBasePlotter::getDatastore(). This datastore can either own its data (which is done here, as we copy the data into the store e.g. by calling JKQTPDatastore::addCopiedColumn(), or it can merely reference to the data (then data needs to be available as array of \c double values). In addition JKQTPDatastore provides different functions to add or edit the contained data. Amongst others it also provides a C++ StdLib-type iterator interface to access the data. \see JKQTPDatastore, \ref jkqtpdatastorage , \ref jkqtp_extut_datamanagement \section jkqtplotter_basicprinciples_graphs_and_mixins Graphs & Mix-Ins Each graph is represented by a class derived from JKQTPPlotElement (e.g. JKQTPXYLineGraph, which shows data as a scatter of symbols that may (or may not) be connected by a line). There is a complete hirarchy of graph base classes, from which different graphs (or more general plot elements) are derived, see \ref jkqtplotter_graphsgroup_classstructure_basics . Constructing a graph class does not yet add it to the plotter. To add it, call JKQTBasePlotter::addGraph() / JKQTPlotter::addGraph(). Only after this step, the graph is displayed. You can modify the apperance of the graph (e.g. colors, name in the key ...) by setting properties in the graph class instance. Most graph peroperties are inserted into the graph class via mix-in classes. A Mixin allows to inject the same code into different classes, but does not require these classes to be in the same inheritance tree. The style of mix-in programming used in the JKQTPlotter library is multiple-inheritance. So a graph class is derived from JKQTPGraph but also has additional parent classes from \ref jkqtplotter_basegraphs_stylemixins like: - JKQTPGraphLineStyleMixin which provides line-styling - JKQTPGraphSymbolStyleMixin which provides styling for graph symbols - JKQTPGraphFillStyleMixin which provides fill styles - ... . */