Source code for crikit.ui.helper_plotOptions

"""
Created on Sun Oct  4 00:28:16 2015

@author: camp
"""

import numpy as _np
from PyQt5.QtGui import (QColor as _QColor)

[docs]class plotStyle: COLOR_DICT = {'Blue':[0, 0, 1], 'Red':[1, 0, 0], 'Green':[0, .5, 0], 'Cyan':[0, .8, .8], 'Magenta':[1, 0, 1], 'Yellow':[.8, .8, 0] } COLOR_VEC = ['Blue', 'Green', 'Red', 'Magenta', 'Yellow', 'Cyan'] LINEWIDTH = 1.0 MARKER_VEC = ['None', #none '.', #point ',', #pixel 'o', #circle 'v', #triangle_down '^', #triangle_up '<', #triangle_left '>', #triangle_right '8', #octagon 's', #square 'p', #pentagon '*', #star 'h', #hexagon1 'H', #hexagon2 '+', #plus 'x', #x 'D', #diamond 'd', #thin_diamond '|', #vline '_'] #hline MARKER_VEC_STR = ['None', 'Point', 'Pixel', 'Circle', 'Triangle Down', 'Triangle Up', 'Triangle Left', 'Triangle Right', 'Octagon', 'Square', 'Pentagon', 'Star', 'Hexagon 1', 'Hexagon 2', 'Plus', 'X', 'Diamond', 'Thin Diamondd', 'Vert Line', 'Horiz Line'] MARKERSIZE=5.0 LINESTYLE_VEC = ['-', '--', '-.', ':', 'None'] LINESTYLE_VEC_STR = ['Solid','Dashed','Dash-Dot','Dotted','None'] def __init__(self, num_current_plots=0): color, linestyle, marker = self.getLineStyle(num_current_plots=num_current_plots) self.color = color self.linewidth = self.LINEWIDTH self.linestyle = linestyle self.marker = marker self.markersize = self.MARKERSIZE @property def linestyle_str(self): index = self.LINESTYLE_VEC.index(self.linestyle) return self.LINESTYLE_VEC_STR[index] @property def qcolor(self): color = self.color color_256 = [color[0]*255, color[1]*255, color[2]*255] return _QColor(color_256[0], color_256[1], color_256[2]) @property def marker_str(self): index = self.MARKER_VEC.index(self.marker) return self.MARKER_VEC_STR[index]
[docs] def getLineStyle(self, num_current_plots = 0): num_colors = len(self.COLOR_VEC) num_linestyles = len(self.LINESTYLE_VEC) num_markers = len(self.MARKER_VEC) max_styles = num_colors*num_linestyles*num_markers if num_current_plots > max_styles: num_current_plots = num_current_plots - max_styles color_iter = num_current_plots%num_colors style_iter = int(_np.floor(num_current_plots/num_colors))%num_linestyles marker_iter = int(_np.floor(num_current_plots/(num_colors*num_linestyles)))%num_markers color = self.COLOR_DICT[self.COLOR_VEC[color_iter]] #print(style_iter) linestyle = self.LINESTYLE_VEC[style_iter] marker = self.MARKER_VEC[marker_iter] return (color, linestyle, marker)