Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
gnuplot-gen.hpp File Reference

Preconfigured setup for data visualisation with Gnuplot. More...

Go to the source code of this file.

Description

Preconfigured setup for data visualisation with Gnuplot.

The visualisation tool gnuplot allows for simple data visualisation in various formats, integrated into a *NIX commandline work environment.

The namespace lib::gnuplot_gen allows to generate diagrams relying on some common layout schemes, which can be customised. Data is passed in as CSV string; the generated Gnuplot script adapts dynamically to the number of data columns given, where the first column always holds the common x-axis values. Additional parameters can be added to the data binding used for script generation; this binding is comprised of key = value settings in a Rec<GenNode> (Lumiera's »ETD« format for structural data)

Todo:
3/2024 this is an initial draft, shaped by the immediate need to visualise measurement data collected while testing the new Scheduler implementation.
See also
GnuplotGen_test
SchedulerStress_test
text-template.hpp

Definition in file gnuplot-gen.hpp.

#include "lib/stat/csv.hpp"
#include "lib/format-util.hpp"
#include "lib/diff/gen-node.hpp"
#include <string>
#include <vector>
#include <tuple>

Namespaces

namespace  lib
 Implementation namespace for support and library code.
 
namespace  lib::gnuplot_gen
 

Typedefs

using ParamRecord = diff::Rec::Mutator
 < preconfigured setup for Gnuplot data visualisation
 

Functions

string dataPlot (ParamRecord)
 Generate a Gnuplot diagram to visualise the given data points.
 
string dataPlot (string csvData)
 
string scatterRegression (ParamRecord)
 Generate a (X,Y)-scatter plot with regression line.
 
string scatterRegression (string csvData)
 

Variables

const string KEY_CSVData = "CSVData"
 
const string KEY_DiagramKind = "DiagramKind"
 
const string KEY_Term = "Term"
 
const string KEY_TermSize = "TermSize"
 
const string KEY_Xtics = "Xtics"
 
const string KEY_Xrange = "Xrange"
 
const string KEY_Yrange = "Yrange"
 
const string KEY_Y2range = "Y2range"
 
const string KEY_Y3range = "Y3range"
 
const string KEY_Xlabel = "Xlabel"
 
const string KEY_Ylabel = "Ylabel"
 
const string KEY_Y2label = "Y2label"
 
const string KEY_Y3label = "Y3label"
 
const string KEY_RegrSocket = "RegrSocket"
 
const string KEY_RegrSlope = "RegrSlope"