Gtkmm-PLplot 3.0
A scientific plotting library for Gtkmm
|
a class that will hold a single dataset and its properties for a Plot2D plot More...
#include <gtkmm-plplot/plotdata2d.h>
Public Member Functions | |
PlotData2D (const std::vector< double > &x, const std::vector< double > &y, Gdk::RGBA color=Gdk::RGBA("red"), LineStyle line_style=CONTINUOUS, double line_width=PLOTDATA_DEFAULT_LINE_WIDTH) | |
PlotData2D (const std::valarray< double > &x, const std::valarray< double > &y, Gdk::RGBA color=Gdk::RGBA("red"), LineStyle line_style=CONTINUOUS, double line_width=PLOTDATA_DEFAULT_LINE_WIDTH) | |
PlotData2D (const std::vector< double > &y, Gdk::RGBA color=Gdk::RGBA("red"), LineStyle line_style=CONTINUOUS, double line_width=PLOTDATA_DEFAULT_LINE_WIDTH) | |
PlotData2D (const std::valarray< double > &y, Gdk::RGBA color=Gdk::RGBA("red"), LineStyle line_style=CONTINUOUS, double line_width=PLOTDATA_DEFAULT_LINE_WIDTH) | |
virtual | ~PlotData2D () |
std::vector< double > | get_vector_x () |
std::vector< double > | get_vector_y () |
size_t | size () |
virtual void | get_extremes (double &xmin, double &xmax, double &ymin, double &ymax) |
void | set_symbol (Glib::ustring symbol) |
Glib::ustring | get_symbol () |
void | set_symbol_color (Gdk::RGBA color) |
Gdk::RGBA | get_symbol_color () |
void | set_symbol_height_scale_factor (double scale_factor=1.0) |
double | get_symbol_height_scale_factor () |
virtual void | add_datapoint (double xval, double yval) |
virtual void | add_datapoint (std::pair< double, double > xy_pair) |
virtual void | remove_datapoint (size_t index) |
virtual void | replace_datapoints (const std::vector< double > &x, const std::vector< double > &y) |
virtual void | replace_datapoints (const std::valarray< double > &x, const std::valarray< double > &y) |
virtual void | draw_plot_data (const Cairo::RefPtr< Cairo::Context > &cr, plstream *pls) override |
Public Member Functions inherited from Gtk::PLplot::PlotDataLine | |
virtual | ~PlotDataLine () |
void | set_color (Gdk::RGBA color) |
Gdk::RGBA | get_color () |
void | set_line_style (LineStyle line_style) |
LineStyle | get_line_style () |
void | set_line_width (double line_width) |
double | get_line_width () |
Public Member Functions inherited from Gtk::PLplot::PlotData | |
virtual | ~PlotData () |
void | set_name (Glib::ustring name) |
Glib::ustring | get_name () |
void | show () |
void | hide () |
bool | is_showing () const |
sigc::signal< void(void)> | signal_changed () |
sigc::signal< void(void)> | signal_data_modified () |
Public Member Functions inherited from Gtk::PLplot::Object | |
virtual void | set_manage () |
Protected Attributes | |
std::vector< double > | x |
The X-values of the dataset. | |
std::vector< double > | y |
The Y-values of the dataset. | |
Glib::ustring | symbol |
If not an empty string, the symbol will be plotted at each of the data points from x and y . | |
Gdk::RGBA | symbol_color |
The color the symbol will be plotted in. | |
double | symbol_scale_factor |
Scale factor that will determine the size of the symbols. Default is 1. | |
Protected Attributes inherited from Gtk::PLplot::PlotDataLine | |
Gdk::RGBA | color |
The color the dataset will be drawn in. | |
LineStyle | line_style |
The linestyle that will be used for this dataset in the plot. | |
double | line_width |
The line width of the dataset. Default is 1.0. | |
Protected Attributes inherited from Gtk::PLplot::PlotData | |
sigc::signal< void(void)> | _signal_changed |
signal that gets emitted whenever any of the dataset proprties is changed. | |
sigc::signal< void(void)> | _signal_data_modified |
signal that gets emitted whenever the X- and Y-datasets have been modified. | |
Private Member Functions | |
PlotData2D ()=delete | |
no default constructor | |
PlotData2D & | operator= (const PlotData2D &)=delete |
no assignment operator | |
PlotData2D (const PlotData2D &source)=delete | |
no default copy constructor; | |
Additional Inherited Members | |
Protected Member Functions inherited from Gtk::PLplot::PlotDataLine | |
PlotDataLine (Gdk::RGBA color, LineStyle line_style, double line_width) | |
Protected Member Functions inherited from Gtk::PLplot::PlotData | |
virtual void | on_changed () |
virtual void | on_data_modified () |
PlotData () | |
Protected Member Functions inherited from Gtk::PLplot::Object | |
Object () | |
a class that will hold a single dataset and its properties for a Plot2D plot
Instances of this class contain a single dataset for a Plot2D two-dimensional plot, consisting of the raw X- and Y-data, along with a number of properties that will determine the appearance of the plot. Data may be represented as a line, symbols or both. The constructors of this class allow to use either std::vector or std::valarray as sources of data, for added flexibility. Internally they are stored only as std::vector though. Important is that whenever a property is changed, signal_changed()
is emitted, which will eventually be picked up by the canvas
that will hold the plot. Several of the methods that are offered by this class are demonstrated in Example 5: Mixing plot lines and symbols plus adding datapoints
|
privatedelete |
no default constructor
|
privatedelete |
no default copy constructor;
Gtk::PLplot::PlotData2D::PlotData2D | ( | const std::vector< double > & | x, |
const std::vector< double > & | y, | ||
Gdk::RGBA | color = Gdk::RGBA("red") , |
||
LineStyle | line_style = CONTINUOUS , |
||
double | line_width = PLOTDATA_DEFAULT_LINE_WIDTH |
||
) |
Constructor
This constructor initializes a new dataset using two vectors, one for the X-values, and one for the Y-values. Optionally, one can also use the constructor to override the default color, line style and line width.
x | the X-values, as std::vector |
y | the Y-values, as std::vector |
color | the line color, default is red |
line_style | the line style, default is CONTINUOUS |
line_width | the line width, default is 1.0 |
Gtk::PLplot::Exception |
Gtk::PLplot::PlotData2D::PlotData2D | ( | const std::valarray< double > & | x, |
const std::valarray< double > & | y, | ||
Gdk::RGBA | color = Gdk::RGBA("red") , |
||
LineStyle | line_style = CONTINUOUS , |
||
double | line_width = PLOTDATA_DEFAULT_LINE_WIDTH |
||
) |
Constructor
This constructor initializes a new dataset using two valarrays, one for the X-values, and one for the Y-values. Optionally, one can also use the constructor to override the default color, line style and line width.
x | the X-values, as std::valarray |
y | the Y-values, as std::valarray |
color | the line color, default is red |
line_style | the line style, default is CONTINUOUS |
line_width | the line width, default is 1.0 |
Gtk::PLplot::PlotData2D::PlotData2D | ( | const std::vector< double > & | y, |
Gdk::RGBA | color = Gdk::RGBA("red") , |
||
LineStyle | line_style = CONTINUOUS , |
||
double | line_width = PLOTDATA_DEFAULT_LINE_WIDTH |
||
) |
Constructor
This constructor initializes a new dataset using a single vector for the Y-values. The X-values will be set to a vector of the same size with elements set to correspond to their array subscript. Optionally, one can also use the constructor to override the default color, line style and line width.
y | the Y-values, as std::vector |
color | the line color, default is red |
line_style | the line style, default is CONTINUOUS |
line_width | the line width, default is 1.0 |
Gtk::PLplot::PlotData2D::PlotData2D | ( | const std::valarray< double > & | y, |
Gdk::RGBA | color = Gdk::RGBA("red") , |
||
LineStyle | line_style = CONTINUOUS , |
||
double | line_width = PLOTDATA_DEFAULT_LINE_WIDTH |
||
) |
Constructor
This constructor initializes a new dataset using a single valarray for the Y-values. The X-values will be set to a vector of the same size with elements set to correspond to their array subscript. Optionally, one can also use the constructor to override the default color, line style and line width.
y | the Y-values, as std::valarray |
color | the line color, default is red |
line_style | the line style, default is CONTINUOUS |
line_width | the line width, default is 1.0 |
|
virtual |
Destructor
|
virtual |
Add a single datapoint, consisting of an xval
and yval
value, to the dataset
This datapoint will be added at the end of the std::vector's x
and y
. After this method is called, the plot will be automatically updated to reflect the changes.
xval | an X-value |
yval | an Y-value |
Reimplemented in Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData3D, Gtk::PLplot::PlotData2DErrorX, and Gtk::PLplot::PlotData2DErrorY.
|
virtual |
Add a single datapoint, consisting of a std::pair with an X and Y value, to the dataset
This datapoint will be added at the end of the std::vector's x
and y
. After this method is called, the plot will be automatically updated to reflect the changes.
xy_pair | a std::pair containing both an X- and a Y- value |
Reimplemented in Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData3D, Gtk::PLplot::PlotData2DErrorX, and Gtk::PLplot::PlotData2DErrorY.
|
overridevirtual |
Method to draw the dataset
This method is virtual allowing inheriting classes to implement their own method with the same signature.
cr | the cairo context to draw to. |
pls | the PLplot plstream object that will do the actual plotting on the Cairo context |
Reimplemented from Gtk::PLplot::PlotData.
Reimplemented in Gtk::PLplot::PlotData2DErrorX, Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData2DErrorY, and Gtk::PLplot::PlotData3D.
|
virtual |
Get the data extremes: minima and maxima along both X- and Y-axes
xmin | X minimum value |
xmax | X maximum value |
ymin | Y minimum value |
ymax | Y minimum value |
Reimplemented in Gtk::PLplot::PlotData2DErrorX, Gtk::PLplot::PlotData2DErrorXY, and Gtk::PLplot::PlotData2DErrorY.
Glib::ustring Gtk::PLplot::PlotData2D::get_symbol | ( | ) |
Get the plot symbol
See set_symbol() for more information
Gdk::RGBA Gtk::PLplot::PlotData2D::get_symbol_color | ( | ) |
Get the plot symbol color
See set_symbol() for more information about plotting symbols
double Gtk::PLplot::PlotData2D::get_symbol_height_scale_factor | ( | ) |
Get the plot symbol height scale factor
See set_symbol() for more information about plotting symbols
Gtk::PLplot::Exception |
std::vector< double > Gtk::PLplot::PlotData2D::get_vector_x | ( | ) |
std::vector< double > Gtk::PLplot::PlotData2D::get_vector_y | ( | ) |
|
privatedelete |
no assignment operator
|
virtual |
Removes a single datapoint from the dataset.
The datapoint at position index
will be removed from the dataset if index
is valid. An exception will be thrown otherwise. After this method is called, the plot will be automatically updated to reflect the changes.
index | The current position of the datapoint in the dataset. |
Gtk::PLplot::Exception |
Reimplemented in Gtk::PLplot::PlotData2DErrorX, Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData2DErrorY, and Gtk::PLplot::PlotData3D.
|
virtual |
Replaces all datapoints in the dataset with the new valarrays
This method assumes that x
and y
are valarrays of equal length. An exception will be thrown otherwise. After this method is called, the plot will be automatically updated to reflect the changes.
x | The new X-values, as std::valarray<double> |
y | The new Y-values, as std::valarray<double> |
Gtk::PLplot::Exception |
Reimplemented in Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData2DErrorX, Gtk::PLplot::PlotData2DErrorY, and Gtk::PLplot::PlotData3D.
|
virtual |
Replaces all datapoints in the dataset with the new vectors
This method assumes that x
and y
are vectors of equal length. An exception will be thrown otherwise. After this method is called, the plot will be automatically updated to reflect the changes.
x | The new X-values, as std::vector<double> |
y | The new Y-values, as std::vector<double> |
Gtk::PLplot::Exception |
Reimplemented in Gtk::PLplot::PlotData2DErrorXY, Gtk::PLplot::PlotData2DErrorX, Gtk::PLplot::PlotData2DErrorY, and Gtk::PLplot::PlotData3D.
void Gtk::PLplot::PlotData2D::set_symbol | ( | Glib::ustring | symbol | ) |
Set the plot symbol
It is possible to plot a symbol (string) at the datapoints, either replacing (if line_style
is NONE) or complementing the line connecting the points. The symbol will be sent 'as-is' to PLplot, meaning that it supports the many escape-sequences that PLplot provides. For more information, the reader is referred to the PLplot manual, section 3.8.4 Escape sequences in text. If the plot symbol is no longer desired, disable it by passing an emptry string.
symbol | the symbol to be used for plotting |
void Gtk::PLplot::PlotData2D::set_symbol_color | ( | Gdk::RGBA | color | ) |
Set the plot symbol color
See set_symbol() for more information about plotting symbols
color | the color that will used for plotting the symbols |
void Gtk::PLplot::PlotData2D::set_symbol_height_scale_factor | ( | double | scale_factor = 1.0 | ) |
Set the plot symbol height scale factor
See set_symbol() for more information about plotting symbols
scale_factor | the scale factor that will used to determine the height of the plotting symbols. |
size_t Gtk::PLplot::PlotData2D::size | ( | ) |
|
protected |
If not an empty string, the symbol will be plotted at each of the data points from x
and y
.
|
protected |
The color the symbol will be plotted in.
|
protected |
Scale factor that will determine the size of the symbols. Default is 1.
|
protected |
The X-values of the dataset.
|
protected |
The Y-values of the dataset.