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 shuffle_file(_file, headers_count=0, output_dir=None, shuffled_prefix='S_'): """ shuffle contexts of a text file """ if not output_dir: output_dir = os.path.abspath(_file) shuffled_filename = shuffled_prefix + get_filename(_file, with_extension=True) shuffled_file = os.path.join(output_dir, shuffled_filename) with open(_file, 'r') as _f: file_data = [line for line in _f] shuffled_idxs = np.random.permutation(len(file_data) - 1) \ + headers_count with open(shuffled_file, 'w') as _shuffled_file: #write header lines for line in file_data[:headers_count]: _shuffled_file.write(line) for i in np.arange(headers_count, len(file_data)): _shuffled_file.write(file_data[shuffled_idxs[i - 1]]) return shuffled_file
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 __init__(self, data_vector, movie_parameters, **params): self.p = movie_parameters if not self.p.movie_name == None: self.params = Params(**params) mpl.rcParams['patch.edgecolor'] = 'none' mpl.rcParams['savefig.edgecolor'] = 'none' self.source = get_filename(self.params.reference_filename) self.__prefixed_movie_name__ = self.__get_prefixed_movie_name__() self.__prefixed_movie_dir__ = self.__get_prefixed_movie_dir__() if not self.params.filter_manager == None: data_vector = self.params.filter_manager.run_filters( data_vector) _max = pl.amax(data_vector.signal) _min = pl.amin(data_vector.signal) self.time = data_vector.time margin = 50 self.signal_size = len(data_vector.signal) self.range = [ _min - margin, _max + margin, _min - margin, _max + margin ] self.x_data = pl.zeros(self.signal_size) self.y_data = pl.zeros(self.signal_size) self.old_signal_plus = None self.idx = 0 self.active_color = get_extended_color_array( movie_parameters.movie_active_color) self.inactive_color = get_extended_color_array( movie_parameters.movie_inactive_color) self.centroid_color = get_extended_color_array( movie_parameters.movie_centroid_color) self.message = None self.core_nums = multiprocessing.cpu_count( ) * self.p.movie_multiprocessing_factor # @IgnorePep8 self.pp_spec_manager = MiniPoincarePlotSpecManager() self.pp_spec_manager.movie_dir = self.__prefixed_movie_dir__ self.pp_spec_manager.movie_name = self.__prefixed_movie_name__ self.pp_spec_manager.movie_dpi = self.p.movie_dpi self.pp_spec_manager.movie_fps = self.p.movie_fps self.pp_spec_manager.movie_height = self.p.movie_height self.pp_spec_manager.movie_width = self.p.movie_width self.pp_spec_manager.active_color = self.active_color self.pp_spec_manager.inactive_color = self.inactive_color self.pp_spec_manager.centroid_color = self.centroid_color self.pp_spec_manager.active_point_size = self.p.movie_active_size self.pp_spec_manager.inactive_point_size = \ self.p.movie_inactive_size self.pp_spec_manager.centroid_point_size = \ self.p.movie_centroid_size self.pp_spec_manager.show_plot_legends = \ self.p.movie_show_plot_legends self.pp_spec_manager.x_label = self.p.x_label self.pp_spec_manager.y_label = self.p.y_label self.pp_spec_manager.clean_frames = self.p.movie_clean_frames self.pp_spec_manager.movie_title = self.p.movie_title self.pp_spec_manager.movie_frame_step = self.p.movie_frame_step self.pp_spec_manager.movie_identity_line = self.p.movie_identity_line self.pp_spec_manager.movie_hour_label = self.p.movie_hour_label self.pp_spec_manager.movie_minute_label = self.p.movie_minute_label self.pp_spec_manager.movie_second_label = self.p.movie_second_label self.pp_spec_manager.movie_time_label_in_line = self.p.movie_time_label_in_line self.pp_spec_manager.movie_time_label_font_size = self.p.movie_time_label_font_size self.pp_spec_manager.movie_time_label_prefix = self.p.movie_time_label_prefix self.pp_spec_manager.movie_title_font_size = self.p.movie_title_font_size self.pp_spec_manager.movie_axis_font_size = self.p.movie_axis_font_size self.pp_spec_manager.movie_axis_font = self.p.movie_axis_font self.pp_spec_manager.movie_title_font = self.p.movie_title_font self.pp_spec_manager.movie_tick_font = self.p.movie_tick_font self.pp_spec_manager.movie_frame_pad = self.p.movie_frame_pad self.pp_spec_manager.movie_create_time_label = self.p.movie_create_time_label self.pp_spec_manager.movie_frame_filename_with_time = self.p.movie_frame_filename_with_time self.pp_specs_managers = [] self.pp_specs_managers.append(self.pp_spec_manager) self.sub_dir_counter = 0 self.scatter = None self.legend_text = None self.pp_specs = [] self.cum_inactive = 0 self._pp_spec_old = None self.s_size = 0 # current calculated signal size
def merge_xls_by_index_file(output_xls, source_csv_files_mask, separator, index_file_xls, index_sheet_name): print('***************************************************') print('csv source files: ' + source_csv_files_mask) index_xls = load_workbook(index_file_xls) index_sheet = index_xls.get_sheet_by_name(index_sheet_name) index_cells = zip(index_sheet.columns[0], index_sheet.columns[1]) xls = None merged_sheet = None for file_nr, _file in enumerate(glob.glob(source_csv_files_mask)): #if file_nr == 2: # break print('===================================') print('Processing file: ' + str(_file)) if xls == None: xls = load_workbook(output_xls) merged_sheet = xls.get_sheet_by_name('merged') headers_cells = merged_sheet.rows[0] code_cells = merged_sheet.columns[2] (headers_line, values_line) = get_first_lines(_file, count=2) filename = get_filename(_file) (group, file_ident) = filename.split('_') headers = [str(group + "_" + header.strip()) for header in headers_line.split(separator)] values = [value.strip() for value in values_line.split(separator)] file_number = extract_number(file_ident) ident_row = None for (file_index_cell, code_index_cell) in index_cells: if not ident_row == None: break if file_number == file_index_cell.value: for code_cell in code_cells: if code_cell.value == code_index_cell.value: ident_row = code_cell.row - 1 break #print("ident_row: " + str(ident_row)) #add header save = False if ident_row: for header_idx, header in enumerate(headers): ident_column = None for cell in headers_cells: if header == cell.value: ident_column = cell.column break if ident_column == None: ident_column = merged_sheet.get_highest_column() header_cell = merged_sheet.cell(row=0, column=ident_column) header_cell.value = header value_cell = merged_sheet.cell(row=ident_row, column=ident_column) save = True else: value_cell = merged_sheet.cell( coordinate=ident_column + str(ident_row + 1)) value_cell.value = values[header_idx] else: print('No item in xls file for ' + str(_file)) return if save: print("Saving " + output_xls) xls.save(output_xls) print(".. done") xls = None if not xls == None: print("Saving " + output_xls) xls.save(output_xls) print(".. done")
def merge_xls_by_column(output_xls, sheet_name, output_column_idx, source_csv_files_mask, separator): print('***************************************************') print('csv source files: ' + source_csv_files_mask) xls = None merged_sheet = None for file_nr, _file in enumerate(glob.glob(source_csv_files_mask)): #if file_nr == 2: # break print('===================================') print('Processing file: ' + str(_file)) if xls == None: xls = load_workbook(output_xls) merged_sheet = xls.get_sheet_by_name(sheet_name) headers_cells = merged_sheet.rows[0] code_cells = merged_sheet.columns[output_column_idx] (headers_line, values_line) = get_first_lines(_file, count=2) filename = get_filename(_file) (group, file_ident) = filename.split('_') file_ident = file_ident.lstrip('0') headers = [str(group + "_" + header.strip()) for header in headers_line.split(separator)] values = [value.strip() for value in values_line.split(separator)] #if file_ident.isdigit(): # file_number = int(file_ident) #else: # file_number = file_ident.lstrip('0') file_number = file_ident ident_row = None _continue = False for code_cell in code_cells: value = code_cell.value if value == None: _continue = True elif file_number == value.lstrip('0'): ident_row = code_cell.row - 1 break if _continue: continue #print("ident_row: " + str(ident_row)) #add header save = False if ident_row: for header_idx, header in enumerate(headers): ident_column = None for cell in headers_cells: if header == cell.value: ident_column = cell.column break if ident_column == None: ident_column = merged_sheet.get_highest_column() header_cell = merged_sheet.cell(row=0, column=ident_column) header_cell.value = header value_cell = merged_sheet.cell(row=ident_row, column=ident_column) save = True else: value_cell = merged_sheet.cell( coordinate=ident_column + str(ident_row + 1)) value_cell.value = values[header_idx] else: print('No item in xls file for ' + str(_file)) continue if save: print("Saving " + output_xls) xls.save(output_xls) print(".. done") xls = None if not xls == None: print("Saving " + output_xls) xls.save(output_xls) print(".. done")
def __init__(self, data_vector, movie_parameters, **params): self.p = movie_parameters if not self.p.movie_name == None: self.params = Params(**params) mpl.rcParams['patch.edgecolor'] = 'none' mpl.rcParams['savefig.edgecolor'] = 'none' self.source = get_filename(self.params.reference_filename) self.__prefixed_movie_name__ = self.__get_prefixed_movie_name__() self.__prefixed_movie_dir__ = self.__get_prefixed_movie_dir__() if not self.params.filter_manager == None: data_vector = self.params.filter_manager.run_filters( data_vector) _max = pl.amax(data_vector.signal) _min = pl.amin(data_vector.signal) self.time = data_vector.time margin = 50 self.signal_size = len(data_vector.signal) self.range = [_min - margin, _max + margin, _min - margin, _max + margin] self.x_data = pl.zeros(self.signal_size) self.y_data = pl.zeros(self.signal_size) self.old_signal_plus = None self.idx = 0 self.active_color = get_extended_color_array( movie_parameters.movie_active_color) self.inactive_color = get_extended_color_array( movie_parameters.movie_inactive_color) self.centroid_color = get_extended_color_array( movie_parameters.movie_centroid_color) self.message = None self.core_nums = multiprocessing.cpu_count() * self.p.movie_multiprocessing_factor # @IgnorePep8 self.pp_spec_manager = MiniPoincarePlotSpecManager() self.pp_spec_manager.movie_dir = self.__prefixed_movie_dir__ self.pp_spec_manager.movie_name = self.__prefixed_movie_name__ self.pp_spec_manager.movie_dpi = self.p.movie_dpi self.pp_spec_manager.movie_fps = self.p.movie_fps self.pp_spec_manager.movie_height = self.p.movie_height self.pp_spec_manager.movie_width = self.p.movie_width self.pp_spec_manager.active_color = self.active_color self.pp_spec_manager.inactive_color = self.inactive_color self.pp_spec_manager.centroid_color = self.centroid_color self.pp_spec_manager.active_point_size = self.p.movie_active_size self.pp_spec_manager.inactive_point_size = \ self.p.movie_inactive_size self.pp_spec_manager.centroid_point_size = \ self.p.movie_centroid_size self.pp_spec_manager.show_plot_legends = \ self.p.movie_show_plot_legends self.pp_spec_manager.x_label = self.p.x_label self.pp_spec_manager.y_label = self.p.y_label self.pp_spec_manager.clean_frames = self.p.movie_clean_frames self.pp_spec_manager.movie_title = self.p.movie_title self.pp_spec_manager.movie_frame_step = self.p.movie_frame_step self.pp_spec_manager.movie_identity_line = self.p.movie_identity_line self.pp_spec_manager.movie_hour_label = self.p.movie_hour_label self.pp_spec_manager.movie_minute_label = self.p.movie_minute_label self.pp_spec_manager.movie_second_label = self.p.movie_second_label self.pp_spec_manager.movie_time_label_in_line = self.p.movie_time_label_in_line self.pp_spec_manager.movie_time_label_font_size = self.p.movie_time_label_font_size self.pp_spec_manager.movie_time_label_prefix = self.p.movie_time_label_prefix self.pp_spec_manager.movie_title_font_size = self.p.movie_title_font_size self.pp_spec_manager.movie_axis_font_size = self.p.movie_axis_font_size self.pp_spec_manager.movie_axis_font = self.p.movie_axis_font self.pp_spec_manager.movie_title_font = self.p.movie_title_font self.pp_spec_manager.movie_tick_font = self.p.movie_tick_font self.pp_spec_manager.movie_frame_pad = self.p.movie_frame_pad self.pp_spec_manager.movie_create_time_label = self.p.movie_create_time_label self.pp_spec_manager.movie_frame_filename_with_time = self.p.movie_frame_filename_with_time self.pp_specs_managers = [] self.pp_specs_managers.append(self.pp_spec_manager) self.sub_dir_counter = 0 self.scatter = None self.legend_text = None self.pp_specs = [] self.cum_inactive = 0 self._pp_spec_old = None self.s_size = 0 # current calculated signal size