Source code for sciplot.data.lines

# -*- coding: utf-8 -*-
"""
Created on Thu Jul  7 10:30:28 2016

@author: chc
"""

from sciplot.data.generic import Data as _Data
import matplotlib as _mpl


[docs]class LineStyle: """ Style information for each data plotted (line) """ def __init__(self): self._setupLineStyle()
[docs] def _setupLineStyle(self): self.style_dict = {'color': None, 'alpha': None, 'linewidth': None, 'linestyle': None, 'marker': None, 'markersize': None}
[docs] def retrieve_style_from_line(self, line): """ Take an MPL line object and retrieve appropriate attributes """ # Line color color = line.get_color() if isinstance(color, str): # print('Color: {}'.format(color)) # color = _mpl.colors.ColorConverter.cache[color] color = _mpl.colors.ColorConverter().to_rgb(color) if isinstance(color, tuple): color = list(color) self.style_dict['color'] = color # Alpha (transparency) alpha = line.get_alpha() if alpha is None: alpha = 1 self.style_dict['alpha'] = alpha # Linewidth self.style_dict['linewidth'] = line.get_linewidth() # Linestyle self.style_dict['linestyle'] = line.get_linestyle() # Marker self.style_dict['marker'] = line.get_marker() # Marker Size self.style_dict['markersize'] = line.get_markersize()
[docs]class DataLine(_Data, LineStyle): def __init__(self): self._setupData() self._setupLineStyle() @property def model_style(self): out = {} out.update(self.style_dict) out['label'] = self.label out['id'] = self.id out['meta'] = self.meta return out @model_style.setter def model_style(self, value): self.label = value['label'] self.meta = value['meta'] self.style_dict['color'] = value['color'] self.style_dict['alpha'] = value['alpha'] self.style_dict['linewidth'] = value['linewidth'] self.style_dict['linestyle'] = value['linestyle'] self.style_dict['marker'] = value['marker'] self.style_dict['markersize'] = value['markersize']
[docs]class PlotsDataContainer: """ Contains all plot data """ def __init__(self): self.line_data_list = [] self.patch_data_list = []