Example: Optimizer

Load the files

[1]:
from opal import load_dataset, filetype

dsets = load_dataset('../../tests/json-reader/data/', ftype=filetype.OPTIMIZER)
Found 99 json files from 1 optimizers and 0 pareto front files

Set the plotting style

[2]:
from opal.visualization.styles import load_style

load_style('jupyter')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[2], line 3
      1 from opal.visualization.styles import load_style
----> 3 load_style('jupyter')

File ~/pyOPALTools/opal/visualization/styles/load_style.py:31, in load_style(use)
     29 from opal.utilities.logger import opal_logger
     30 opal_logger.info("Loading '" + use + "' plotting style")
---> 31 eval(use + '()')

File <string>:1

File ~/pyOPALTools/opal/visualization/styles/jupyter.py:31, in jupyter()
     29 # reset
     30 from opal.visualization.styles.default import default
---> 31 default()
     33 if mpl.__version__ < '2':
     34     opal_logger.error('jupyter style not available for matplotlib version ' + mpl.__version__)

File ~/pyOPALTools/opal/visualization/styles/default.py:38, in default()
     36 mpl.rcParams['lines.linestyle']         = '-'           # solid line
     37 mpl.rcParams['lines.color']             = 'C0'          # has no affect on plot(); see axes.prop_cycle
---> 38 mpl.rcParams['lines.marker']            = None          # the default marker
     39 mpl.rcParams['lines.markeredgewidth']   = 1.0           # the line width around the marker symbol
     40 mpl.rcParams['lines.markersize']        = 6             # markersize, in points

File /usr/local/lib/python3.8/dist-packages/matplotlib/__init__.py:722, in RcParams.__setitem__(self, key, val)
    720         cval = self.validate[key](val)
    721     except ValueError as ve:
--> 722         raise ValueError(f"Key {key}: {ve}") from None
    723     self._set(key, cval)
    724 except KeyError as err:

ValueError: Key lines.marker: Could not convert None to str

Do some plotting …

[3]:
dsets.plot_parallel_coordinates(1)
Install plotly: pip install plotly
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
Cell In[3], line 1
----> 1 dsets.plot_parallel_coordinates(1)

File ~/pyOPALTools/opal/visualization/OptimizerPlotter.py:134, in OptimizerPlotter.plot_parallel_coordinates(self, gen, opt, **kwargs)
    127 obj_dimension = self.__sort_list(obj_names,
    128                                  obj_dimension,
    129                                  'label')
    131 dimension = dvar_dimension + obj_dimension
    133 data = [
--> 134     go.Parcoords(
    135         line = dict(color = ids,
    136                     colorscale = 'Jet',
    137                     showscale = True,
    138                     reversescale = True,
    139                     cmin = min(ids),
    140                     cmax = max(ids)),
    141         dimensions = dimension
    142     )
    143 ]
    145 layout = go.Layout(
    146     height=800,
    147     width=1600,
    148     font=dict(size=18),
    149     title = 'Generation ' + str(gen)
    150 )
    152 fig = go.Figure(data = data, layout = layout)

UnboundLocalError: local variable 'go' referenced before assignment
[4]:
plt = dsets.plot_objectives(yscale='log')

plt.show()
_images/Optimizer_7_0.svg
[5]:
plt = dsets.plot_objective_evolution(op=min)
plt.show()
_images/Optimizer_8_0.svg
[6]:
plt = dsets.plot_dvar_evolution(op=min, dvar='prinit')
plt.show()
_images/Optimizer_9_0.svg
[7]:
value, gen, ind = dsets.find_minimum()

print ( value, gen, ind)

dsets.print_individual(gen=gen, ind=ind)
12.11458 37 53
Design variables:
         benergy 0.0715532
         phiinit 110.588
         prinit -0.0124705
         rinit 2053.47
Objectives:
         dpeak1 4.33
         dpeak2 0.87
         dpeak3_5 6.91458