epsproc.plot.hvPlotters module

ePSproc plotting functions with Holoviews + Bokeh.

Aim: simple plotters for different datatypes, interactive in Jupyter Notebook + HTML formats.

13/01/21 Added
  • env check
  • setPlotDefaults() (from tmo-dev/PEMtk codes)
  • curvePlot() for general multi-dim Holomap curve plots.

15/07/20 Debugged, still pretty basic but running. 05/07/20 v1 in development.

See

Todo

  • Plotting style mapping & options. Currently having HV issues here.
  • Currently set only for XC datatypes from single dataSet, will want to enable stacking etc. here.
  • Errorbar or spread plots, currently having issues getting these working for multidim data.
epsproc.plot.hvPlotters.XCplot(dataXS, lineDashList={'L': 'dashed', 'M': 'solid', 'V': 'dashed'}, kdims='Eke', tString=None)[source]

Plot XC data using Holoviews.

Currently optional stuff hard-coded here, will produce plots [sigma, beta] showing all data. Rather crude, needs some more style mapping.

Parameters:
  • dataXS (Xarray) – Xarray dataarray containing XC data in standard format.
  • lineDashList (dict, optional, default = {'L': 'dashed', 'M': 'solid', 'V': 'dashed'}) – Set line types for calculation gauge.
  • kdims (str, optional, default = 'Eke') – Set x-axis dimension.
  • tString (str, optional, default = None) – Set
Returns:

layout

Return type:

hv object

Examples

>>> plotObj, _,_ = XCplot(dataXS[0])
>>> plotObj

Notes

  • Should add some limit finding params here, to skip/fix cases for out-of-range XS or betas (e.g. null XS cases).
epsproc.plot.hvPlotters.curvePlot(dataXR, kdims=None, returnPlot=True, renderPlot=True, **kwargs)[source]

Basic routine for curve/Holomap plot from Xarray dataset.

Currently assumes all plot type selection & cleaning done in calling function.

11/01/22: basic version from recent OCS work plus TMO-dev & PEMtk codes.

epsproc.plot.hvPlotters.hvdsConv(dataXS)[source]

Basic conversion for XS data from Xarray to Holoviews.

This will drop stacked Sym dims, and sum of Total to reduce - may not be appropriate in all cases?

epsproc.plot.hvPlotters.setPlotDefaults(fSize=[800, 400], imgSize=500)[source]

Basic plot defaults

epsproc.plot.hvPlotters.setPlotters(hvBackend='bokeh', width=500, height=None, snsStyle='darkgrid')[source]

Set some plot options - Seaborn style + HV defaults.

May have some issues with scope here - TBC. Should just run on function import?

Update: now moved to module import.

Parameters:
  • hvBackend (str or list of strs, optional, default = 'bokeh') – Backend(s) for holoviews to load. Can call bokeh, matplotlib or plotly
  • width (int, optional, default = 500) – Setting for plot width, in pixels.
  • snsStyle (str, optional, default = "darkgrid") – If using Seaborn styles, use snsStyle. See https://seaborn.pydata.org/tutorial/aesthetics.html