import matplotlib as mpl import matplotlib.pyplot as plt from cycler import cycler # Palette P = { "bg0": "#282828", "bg0-hard": "#1d2021", "bg0-soft": "#32302f", "bg1": "#3c3836", "bg2": "#504945", "bg3": "#665c54", "bg4": "#7c6f64", "fg0": "#fbf1c7", "fg0-hard": "#f9f5d7", "fg0-soft": "#f2e5bc", "fg1": "#ebdbb2", "fg2": "#d5c4a1", "fg3": "#bdae93", "fg4": "#a89984", "dark-red": "#cc241d", "dark-green": "#98971a", "dark-yellow": "#d79921", "dark-blue": "#458588", "dark-purple": "#b16286", "dark-aqua": "#689d6a", "dark-orange": "#d65d0e", "dark-gray": "#928374", "light-red": "#fb4934", "light-green": "#b8bb26", "light-yellow": "#fabd2f", "light-blue": "#83a598", "light-purple": "#d3869b", "light-aqua": "#8ec07c", "light-orange": "#f38019", "light-gray": "#a89984", "alt-red": "#9d0006", "alt-green": "#79740e", "alt-yellow": "#b57614", "alt-blue": "#076678", "alt-purple": "#8f3f71", "alt-aqua": "#427b58", "alt-orange": "#af3a03", "alt-gray": "#7c6f64", } COLORS_LIGHT = [ P["light-blue"], P["light-orange"], P["light-green"], P["light-red"], P["light-purple"], P["light-yellow"], P["light-aqua"], P["light-gray"]] COLORS_DARK = [ P["dark-blue"], P["dark-orange"], P["dark-green"], P["dark-red"], P["dark-purple"], P["dark-yellow"], P["dark-aqua"], P["dark-gray"]] COLORS_ALT = [ P["alt-blue"], P["alt-orange"], P["alt-green"], P["alt-red"], P["alt-purple"], P["alt-yellow"], P["alt-aqua"], P["alt-gray"]] COLORS = COLORS_LIGHT def set_colorscheme(variant="dark"): global COLORS if variant == "dark": FIG_BG_COLOR = P["bg0"] PLT_FG_COLOR = P["fg0"] PLT_BG_COLOR = P["bg0"] PLT_GRID_COLOR = P["bg2"] LEGEND_FG_COLOR = PLT_FG_COLOR LEGEND_BG_COLOR = P["bg1"] LEGEND_BORDER_COLOR = P["bg2"] COLORS = COLORS_LIGHT else: FIG_BG_COLOR = P["fg0"] PLT_FG_COLOR = P["bg0"] PLT_BG_COLOR = P["fg0"] PLT_GRID_COLOR = P["fg2"] LEGEND_FG_COLOR = PLT_FG_COLOR LEGEND_BG_COLOR = P["fg1"] LEGEND_BORDER_COLOR = P["fg2"] COLORS = COLORS_DARK if variant == "alt": COLORS = COLORS_ALT color_rcParams = { 'axes.edgecolor': PLT_FG_COLOR, 'axes.facecolor': PLT_BG_COLOR, 'axes.labelcolor': PLT_FG_COLOR, 'axes.titlecolor': 'auto', # 'axes.prop_cycle': cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']), 'axes.prop_cycle': cycler('color', COLORS), # 'axes3d.xaxis.panecolor': (0.95, 0.95, 0.95, 0.5), # 'axes3d.yaxis.panecolor': (0.9, 0.9, 0.9, 0.5), # 'axes3d.zaxis.panecolor': (0.925, 0.925, 0.925, 0.5), # 'boxplot.boxprops.color': 'black', # 'boxplot.capprops.color': 'black', # 'boxplot.flierprops.color': 'black', # 'boxplot.flierprops.markeredgecolor': 'black', # 'boxplot.flierprops.markeredgewidth': 1.0, # 'boxplot.flierprops.markerfacecolor': 'none', # 'boxplot.meanprops.color': 'C2', # 'boxplot.meanprops.markeredgecolor': 'C2', # 'boxplot.meanprops.markerfacecolor': 'C2', # 'boxplot.meanprops.markersize': 6.0, # 'boxplot.medianprops.color': 'C1', # 'boxplot.whiskerprops.color': 'black', 'figure.edgecolor': PLT_BG_COLOR, 'figure.facecolor': PLT_BG_COLOR, # 'figure.figsize': [6.4, 4.8], # 'figure.frameon': True, # 'figure.labelsize': 'large', 'grid.color': PLT_GRID_COLOR, # 'hatch.color': 'black', 'legend.edgecolor': LEGEND_BORDER_COLOR, 'legend.facecolor': LEGEND_BG_COLOR, 'xtick.color': PLT_FG_COLOR, 'ytick.color': PLT_FG_COLOR, 'xtick.labelcolor': PLT_FG_COLOR, 'ytick.labelcolor': PLT_FG_COLOR, # 'lines.color': 'C0', 'text.color': PLT_FG_COLOR, } for k, v in color_rcParams.items(): plt.rcParams[k] = v # override single char codes mpl.colors.get_named_colors_mapping()["b"] = COLORS[0] mpl.colors.get_named_colors_mapping()["o"] = COLORS[1] mpl.colors.get_named_colors_mapping()["g"] = COLORS[2] mpl.colors.get_named_colors_mapping()["r"] = COLORS[3] mpl.colors.get_named_colors_mapping()["m"] = COLORS[4] mpl.colors.get_named_colors_mapping()["y"] = COLORS[5] mpl.colors.get_named_colors_mapping()["c"] = COLORS[6] mpl.colors.get_named_colors_mapping()["k"] = P["fg0"] mpl.colors.get_named_colors_mapping()["w"] = P["bg0"]