def expand_to_real_class_names(short_classes_names, _base_class, _class_suffix=''): """ method converts user's inputed classes names into real statistics class names e.g. _class_suffix = 'statistic' """ real_classes_names = [] real_names = [( name, name.lower(), ) for name in get_subclasses_names(_base_class)] lower_names = [ ( name.lower(), name.lower() + _class_suffix, ) # e.g. _class_suffix = 'statistic' @IgnorePep8 for name in get_as_list(short_classes_names) ] for (class_lower_name, class_base_name) in lower_names: for (real_name, real_lower_name) in real_names: if real_lower_name in (class_lower_name, class_base_name): real_classes_names.append(real_name) break else: print('Uknown class: ' + class_lower_name) return [] return real_classes_names
def prepareParameters(self): """ method prepares poincare plot parameters """ if self.stepper: self.stepper_size = extract_number(self.stepper, convert=int) self.stepper_unit = extract_alphabetic(self.stepper, convert=str.lower) self.movie_dir = nvl(self.movie_dir, self.output_dir, '') if isinstance(self.excluded_annotations, str): self.excluded_annotations = get_as_list(self.excluded_annotations) if self.filters_names is not None: map(self.addFilter, get_as_list(self.filters_names)) if self.output_dir: # remove leading and trailing whitespaces self.output_dir = self.output_dir.strip() if self.window_size: self.window_size_unit = extract_alphabetic(self.window_size, convert=str.lower) self.window_size_value = extract_number(self.window_size, convert=int) self.movie_multiprocessing_factor = nvl( self.movie_multiprocessing_factor, 3 if multiprocessing.cpu_count() > 1 else 0) if not self.data_file == None: self.group_data_filename = None if isinstance(self.output_precision, str): self.output_precision = get_as_tuple(self.output_precision, convert=int) elif self.output_precision == None: self.output_precision = DEFAULT_OUTPUT_PRECISION if self.add_headers == None: self.add_headers = True if len(self.statistics_classes) > 0: self.statistics_names = [ s.__name__.replace("Statistic", "") for s in self.statistics_classes ]
def create_many_plots(_source_file, headers, separator, window_size=None): """ draws many plots base on data from _source_file and collection of headers grouped by a semicolon, elements in a group are separated by a comma """ colors = ['red', 'green', 'blue', 'yellow', 'black', 'cyan', 'magenta'] first_line = get_first_lines(_source_file) if len(first_line) == 0: return file_headers = [ header.strip().lower() for header in first_line[0].split(separator) ] for sub_headers in get_as_list(headers, separator=';'): labels = [label.strip().lower() for label in get_as_list(sub_headers)] try: cols = tuple([file_headers.index(label) for label in labels]) except ValueError: continue if separator == None: values = np.loadtxt(_source_file, skiprows=1, unpack=True, usecols=cols) else: values = np.loadtxt(_source_file, skiprows=1, unpack=True, usecols=cols, delimiter=separator) plt.gca().set_color_cycle(colors[:len(labels)]) filename = get_filename(_source_file) title = "%s %s" % (filename, nvl(window_size + " window size", '')) plt.title(title) for value in values: plt.plot(value) plt.legend(labels, loc='upper right') plt.axes().set_xlabel('Time') plot_filename = "%s_%s.png" % (filename, '_'.join(labels)) _file = as_path(fs.dirname(_source_file), plot_filename) plt.savefig(_file) plt.cla()
def create_many_plots(_source_file, headers, separator, window_size=None): """ draws many plots base on data from _source_file and collection of headers grouped by a semicolon, elements in a group are separated by a comma """ colors = ['red', 'green', 'blue', 'yellow', 'black', 'cyan', 'magenta'] first_line = get_first_lines(_source_file) if len(first_line) == 0: return file_headers = [header.strip().lower() for header in first_line[0].split(separator)] for sub_headers in get_as_list(headers, separator=';'): labels = [label.strip().lower() for label in get_as_list(sub_headers)] try: cols = tuple([file_headers.index(label) for label in labels]) except ValueError: continue if separator == None: values = np.loadtxt(_source_file, skiprows=1, unpack=True, usecols=cols) else: values = np.loadtxt(_source_file, skiprows=1, unpack=True, usecols=cols, delimiter=separator) plt.gca().set_color_cycle(colors[:len(labels)]) filename = get_filename(_source_file) title = "%s %s" % (filename, nvl(window_size + " window size", '')) plt.title(title) for value in values: plt.plot(value) plt.legend(labels, loc='upper right') plt.axes().set_xlabel('Time') plot_filename = "%s_%s.png" % (filename, '_'.join(labels)) _file = as_path(fs.dirname(_source_file), plot_filename) plt.savefig(_file) plt.cla()
def prepareParameters(self): """ method prepares poincare plot parameters """ if self.stepper: self.stepper_size = extract_number(self.stepper, convert=int) self.stepper_unit = extract_alphabetic(self.stepper, convert=str.lower) self.movie_dir = nvl(self.movie_dir, self.output_dir, "") if isinstance(self.excluded_annotations, str): self.excluded_annotations = get_as_list(self.excluded_annotations) if self.filters_names is not None: map(self.addFilter, get_as_list(self.filters_names)) if self.output_dir: # remove leading and trailing whitespaces self.output_dir = self.output_dir.strip() if self.window_size: self.window_size_unit = extract_alphabetic(self.window_size, convert=str.lower) self.window_size_value = extract_number(self.window_size, convert=int) self.movie_multiprocessing_factor = nvl( self.movie_multiprocessing_factor, 3 if multiprocessing.cpu_count() > 1 else 0 ) if not self.data_file == None: self.group_data_filename = None if isinstance(self.output_precision, str): self.output_precision = get_as_tuple(self.output_precision, convert=int) elif self.output_precision == None: self.output_precision = DEFAULT_OUTPUT_PRECISION if self.add_headers == None: self.add_headers = True if len(self.statistics_classes) > 0: self.statistics_names = [s.__name__.replace("Statistic", "") for s in self.statistics_classes]
def expand_to_real_filters_names(filters_names): """ method converts user's inputed filters names into real filters class names """ if filters_names[0] == ALL_FILTERS or filters_names == ALL_FILTERS: return get_filters_long_names() real_filters_names = [] real_names = [(real_name, real_name.lower(), ) \ for real_name in get_filters_long_names()] lower_names = [(name.lower(), name.lower() + 'filter', ) \ for name in get_as_list(filters_names)] for (filter_lower_name, filter_base_name) in lower_names: for (real_name, real_lower_name) in real_names: if real_lower_name in (filter_lower_name, filter_base_name): real_filters_names.append(real_name) break else: print('Uknown filter: ' + filter_lower_name) return [] return real_filters_names
def expand_to_real_class_names(short_classes_names, _base_class, _class_suffix=''): """ method converts user's inputed classes names into real statistics class names e.g. _class_suffix = 'statistic' """ real_classes_names = [] real_names = [(name, name.lower(), ) for name in get_subclasses_names(_base_class)] lower_names = [(name.lower(), name.lower() + _class_suffix, ) # e.g. _class_suffix = 'statistic' @IgnorePep8 for name in get_as_list(short_classes_names)] for (class_lower_name, class_base_name) in lower_names: for (real_name, real_lower_name) in real_names: if real_lower_name in (class_lower_name, class_base_name): real_classes_names.append(real_name) break else: print('Uknown class: ' + class_lower_name) return [] return real_classes_names
def expand_to_real_filters_names(filters_names): """ method converts user's inputed filters names into real filters class names """ if filters_names[0] == ALL_FILTERS or filters_names == ALL_FILTERS: return get_filters_long_names() real_filters_names = [] real_names = [(real_name, real_name.lower(), ) \ for real_name in get_filters_long_names()] lower_names = [(name.lower(), name.lower() + 'filter', ) \ for name in get_as_list(filters_names)] for (filter_lower_name, filter_base_name) in lower_names: for (real_name, real_lower_name) in real_names: if real_lower_name in (filter_lower_name, filter_base_name): real_filters_names.append(real_name) break else: print('Uknown filter: ' + filter_lower_name) return [] return real_filters_names