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 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")