PyFoam.ThirdParty.Gnuplot.PlotItems module¶
PlotItems.py – Objects that can be plotted by Gnuplot.
This module contains several types of PlotItems. PlotItems can be plotted by passing them to a Gnuplot.Gnuplot object. You can derive your own classes from the PlotItem hierarchy to customize their behavior.
-
PyFoam.ThirdParty.Gnuplot.PlotItems.
Data
(*data, **keyw)[source]¶ Create and return a _FileItem representing the data from *data.
Create a ‘_FileItem’ object (which is a type of ‘PlotItem’) out of one or more Float Python numpy arrays (or objects that can be converted to a float numpy array). If the routine is passed a single with multiple dimensions, then the last index ranges over the values comprising a single data point (e.g., [<x>, <y>, <sigma>]) and the rest of the indices select the data point. If passed a single array with 1 dimension, then each point is considered to have only one value (i.e., by default the values will be plotted against their indices). If the routine is passed more than one array, they must have identical shapes, and then each data point is composed of one point from each array. E.g., ‘Data(x,x**2)’ is a ‘PlotItem’ that represents x squared as a function of x. For the output format, see the comments for ‘write_array()’.
How the data are written to gnuplot depends on the ‘inline’ argument and preference settings for the platform in use.
Keyword arguments:
- ‘cols=<tuple>’ – write only the specified columns from each
- data point to the file. Since cols is used by python, the columns should be numbered in the python style (starting from 0), not the gnuplot style (starting from 1).
- ‘inline=<bool>’ – transmit the data to gnuplot ‘inline’
- rather than through a temporary file. The default is the value of gp.GnuplotOpts.prefer_inline_data.
‘filename=<string>’ – save data to a permanent file.
The keyword arguments recognized by ‘_FileItem’ can also be used here.
-
PyFoam.ThirdParty.Gnuplot.PlotItems.
File
(filename, **keyw)[source]¶ Construct a _FileItem object referring to an existing file.
This is a convenience function that just returns a _FileItem that wraps the filename.
<filename> is a string holding the filename of an existing file. The keyword arguments are the same as those of the _FileItem constructor.
-
class
PyFoam.ThirdParty.Gnuplot.PlotItems.
Func
(function, **keyw)[source]¶ Bases:
PyFoam.ThirdParty.Gnuplot.PlotItems.PlotItem
Represents a mathematical expression to plot.
Func represents a mathematical expression that is to be computed by gnuplot itself, as if you would type for example:
gnuplot> plot sin(x)
into gnuplot itself. The argument to the contructor is a string that should be a mathematical expression. Example:
g.plot(Func('sin(x)', with_='line 3'))
As shorthand, a string passed to the plot method of a Gnuplot object is also treated as a Func:
g.plot('sin(x)')
-
PyFoam.ThirdParty.Gnuplot.PlotItems.
GridData
(data, xvals=None, yvals=None, inline=<class 'PyFoam.ThirdParty.Gnuplot.PlotItems._unset'>, filename=None, **keyw)[source]¶ Return a _FileItem representing a function of two variables.
‘GridData’ represents a function that has been tabulated on a rectangular grid. The data are written to a file; no copy is kept in memory.
Arguments:
- ‘data’ – the data to plot: a 2-d array with dimensions
- (numx,numy).
‘xvals’ – a 1-d array with dimension ‘numx’
‘yvals’ – a 1-d array with dimension ‘numy’
‘binary=<bool>’ – send data to gnuplot in binary format?
‘inline=<bool>’ – send data to gnuplot “inline”?
‘filename=<string>’ – save data to a permanent file.
Note the unusual argument order! The data are specified before the x and y values. (This inconsistency was probably a mistake; after all, the default xvals and yvals are not very useful.)
‘data’ must be a data array holding the values of a function f(x,y) tabulated on a grid of points, such that ‘data[i,j] == f(xvals[i], yvals[j])’. If ‘xvals’ and/or ‘yvals’ are omitted, integers (starting with 0) are used for that coordinate. The data are written to a temporary file; no copy of the data is kept in memory.
If ‘binary=0’ then the data are written to a datafile as ‘x y f(x,y)’ triplets (y changes most rapidly) that can be used by gnuplot’s ‘splot’ command. Blank lines are included each time the value of x changes so that gnuplot knows to plot a surface through the data.
If ‘binary=1’ then the data are written to a file in a binary format that ‘splot’ can understand. Binary format is faster and usually saves disk space but is not human-readable. If your version of gnuplot doesn’t support binary format (it is a recently-added feature), this behavior can be disabled by setting the configuration variable ‘gp.GnuplotOpts.recognizes_binary_splot=0’ in the appropriate gp*.py file.
Thus if you have three arrays in the above format and a Gnuplot instance called g, you can plot your data by typing ‘g.splot(Gnuplot.GridData(data,xvals,yvals))’.
-
class
PyFoam.ThirdParty.Gnuplot.PlotItems.
PlotItem
(**keyw)[source]¶ Bases:
object
Plotitem represents an item that can be plotted by gnuplot.
For the finest control over the output, you can create ‘PlotItems’ yourself with additional keyword options, or derive new classes from ‘PlotItem’.
The handling of options is complicated by the attempt to allow options and their setting mechanism to be inherited conveniently. Note first that there are some options that can only be set in the constructor then never modified, and others that can be set in the constructor and/or modified using the ‘set_option()’ member function. The former are always processed within ‘__init__’. The latter are always processed within ‘set_option’, which is called by the constructor.
‘set_option’ is driven by a class-wide dictionary called ‘_option_list’, which is a mapping ‘{ <option> : <setter> }’ from option name to the function object used to set or change the option. <setter> is a function object that takes two parameters: ‘self’ (the ‘PlotItem’ instance) and the new value requested for the option. If <setter> is ‘None’, then the option is not allowed to be changed after construction and an exception is raised.
Any ‘PlotItem’ that needs to add options can add to this dictionary within its class definition. Follow one of the examples in this file. Alternatively it could override the ‘set_option’ member function if it needs to do wilder things.
Members:
- ‘_basecommand’ – a string holding the elementary argument that
- must be passed to gnuplot’s `plot’ command for this item; e.g., ‘sin(x)’ or ‘“filename.dat”’.
- ‘_options’ – a dictionary of (<option>,<string>) tuples
corresponding to the plot options that have been set for this instance of the PlotItem. <option> is the option as specified by the user; <string> is the string that needs to be set in the command line to set that option (or None if no string is needed). Example:
{'title' : ('Data', 'title "Data"'), 'with' : ('linespoints', 'with linespoints')}
-
command
()[source]¶ Build the plot command to be sent to gnuplot.
Build and return the plot command, with options, necessary to display this item. If anything else needs to be done once per plot, it can be done here too.
-
pipein
(f)[source]¶ Pipe necessary inline data to gnuplot.
If the plot command requires data to be put on stdin (i.e., ‘plot “-“’), this method should put that data there. Can be overridden in derived classes.
-
set_option
(**keyw)[source]¶ Set or change a plot option for this PlotItem.
See documentation for ‘__init__’ for information about allowed options. This function can be overridden by derived classes to allow additional options, in which case those options will also be allowed by ‘__init__’ for the derived class. However, it is easier to define a new ‘_option_list’ variable for the derived class.