else: axs1[3].plot(v_surf.times, v_surf.getArray('fractional_areas.cell.1'), '-', color=color, label=f'frac area snow ({label})') def plot_snow_precip(axs1, v_surf, v_snow): axs1[0].plot(v_snow.times, v_snow.getArray('precipitation'), '-', color='gray', label=f'snow precip') def decorate(axs1): axs1[3].set_xlabel('time [d]') axs1[0].set_ylabel('flux [m/s]') axs1[1].set_ylabel('temperature [K]') axs1[2].set_ylabel('depth [m]') axs1[3].set_ylabel('fractional area [-]') for ax in axs1: ax.legend() if __name__ == '__main__': dnames = ['permafrost', 'permafrost_subgrid', 'permafrost_subgrid_star'] labels = ['control', 'subgrid=0', 'subgrid=0,star'] cols = colors.enumerated_colors(len(dnames)) fig = plt.figure() axs = fig.subplots(4,1) for dname, color, label in zip(dnames, cols, labels): v_surf, v_snow = load(dname) plot(axs, v_surf, v_snow, color, label) plot_snow_precip(axs, v_surf, v_snow) decorate(axs) plt.show()
help='Choose whether colors represent different runs or time.') parser.add_argument( '--color-sample', type=str, choices=['enumerated', 'sampled'], default='enumerated', help='Choose colors from an enumerate set or a sampled colormap.') parser.add_argument('--color-map', type=str, default='jet', help='Choose which colormap to use.') args = parser.parse_args() if args.color_mode == 'runs': if args.color_sample == 'enumerated': color_list = colors.enumerated_colors(len(args.directories)) else: color_list = colors.sampled_colors( len(args.directories), getattr(matplotlib.cm, args.color_map)) elif args.color_mode == 'time': color_list = [ args.color_map, ] * len(args.directories) fig = plt.figure(figsize=args.figsize) axs = fig.subplots(len(args.layout), len(args.layout[0]), squeeze=False) domains = set([domain_var(v)[0] for v in layout_flattener(args.layout)]) for dirname, color in zip(args.directories, color_list): vis_objs = dict() for domain in domains:
parser.add_argument( '--wrm', type=option_to_wrm, action='append', help='WRM parameters, "alpha n sr [label [smoothing_interval_sat]]"') parser.add_argument('--y-units', type=str, choices=['Pa', 'm', 'hPa', 'cm'], default='Pa', help='units of the y-axis, in log space') parser.add_argument('--kr', action='store_true', help='Plot relative permeability curve') args = parser.parse_args() color_list = colors.enumerated_colors(len(args.wrm)) fig = plt.figure() ax = fig.add_subplot(111) if args.kr: for (label, wrm), color in zip(args.wrm, color_list): plot_kr(wrm, ax, color, label=label) else: for (label, wrm), color in zip(args.wrm, color_list): plot(wrm, ax, color, y_units=args.y_units, label=label) ax.legend() plt.show() sys.exit(0)
axs[i].set_title(n) for p, s2 in zip(precip, ['-','--']): if p in fid.keys(): axs[i+1].plot(time[0:end], np.squeeze(fid[p][0:end]), s2, color=color) axs[i+1].set_title("precip (solid=rain, dash=snow) [m SWE s^-1]") def get_axs(): return plt.subplots(3,2, figsize=(10,10)) if __name__ == "__main__": import sys import colors import argparse parser = argparse.ArgumentParser(description="Plot met data from an ATS input h5 file using default names.") parser.add_argument("INPUT_FILES", nargs="+", type=str, help="List of logfiles to parse.") args = parser.parse_args() color_list = colors.enumerated_colors(len(args.INPUT_FILES)) fig, axs = get_axs() for fname, color in zip(args.INPUT_FILES, color_list): plot_met(fname, axs, color) plt.show() sys.exit(0)
default="jet", help="Colormap used to pick a color.") parser.add_argument( "--overwrite", "-o", action="store_true", help= "Do not use any existing .npz file -- instead reload from the logfile and overwrite the .npz file." ) args = parser.parse_args() if args.colors is not None: cm = colors.cm_mapper(0, 1, args.colormap) args.colors = [cm(c) for c in args.colors] else: args.colors = colors.enumerated_colors(len(args.LOG_FILES)) fig, axs = get_axs() for fname, color in zip(args.LOG_FILES, args.colors): if fname.endswith(".npz"): data = read_from_file(fname) elif os.path.isfile(fname + ".npz") and not args.overwrite: data = read_from_file(fname + ".npz") else: with open(fname, 'r') as fid: data = parse_logfile(fid) write_to_file(data, fname) plot(data, axs, color, fname)
return i, fig, axs if __name__ == '__main__': import sys, os import colors parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument( "DIRECTORIES", nargs="+", type=str, help="List of directories containing observation files.") args = parser.parse_args() colorlist = colors.enumerated_colors(len(args.DIRECTORIES)) fig = None axs = None for obs_file, color in zip(obs_files, colorlist): if not obs_file.endswith('.dat'): obs_file = os.path.join(obs_file, 'observation_column_all.dat') df = load(obs_file) last_plot, fig, axs = plot(df, color, obs_file, fig=fig, axs=axs) axs[last_plot].legend() plt.show()