--- a +++ b/src/scpanel/settings.py @@ -0,0 +1,61 @@ +from cycler import cycler +from matplotlib import rcParams + +from . import palettes + + +def set_rcParams(fontsize=14, color_map=None): + """Set default matplotlib.rcParams""" + + # figure + rcParams["figure.figsize"] = (4, 4) + rcParams["figure.dpi"] = 300 + rcParams["figure.subplot.left"] = 0.18 + rcParams["figure.subplot.right"] = 0.96 + rcParams["figure.subplot.bottom"] = 0.15 + rcParams["figure.subplot.top"] = 0.91 + + rcParams["lines.linewidth"] = 1.5 # the line width of the frame + rcParams["lines.markersize"] = 6 + rcParams["lines.markeredgewidth"] = 1 + + # font + rcParams["font.sans-serif"] = [ + "Arial", + "Helvetica", + "DejaVu Sans", + "Bitstream Vera Sans", + "sans-serif", + ] + fontsize = fontsize + rcParams["font.size"] = fontsize + rcParams["legend.fontsize"] = 0.92 * fontsize + rcParams["axes.titlesize"] = fontsize + rcParams["axes.labelsize"] = fontsize + + # legend + rcParams["legend.numpoints"] = 1 + rcParams["legend.scatterpoints"] = 1 + rcParams["legend.handlelength"] = 0.5 + rcParams["legend.handletextpad"] = 0.4 + + # color cycle + rcParams["axes.prop_cycle"] = cycler(color=palettes.default_20) + + # lines + rcParams["axes.linewidth"] = 0.8 + rcParams["axes.edgecolor"] = "black" + rcParams["axes.facecolor"] = "white" + + # ticks + rcParams["xtick.color"] = "k" + rcParams["ytick.color"] = "k" + rcParams["xtick.labelsize"] = fontsize + rcParams["ytick.labelsize"] = fontsize + + # axes grid + rcParams["axes.grid"] = False + rcParams["grid.color"] = ".8" + + # color map + rcParams["image.cmap"] = rcParams["image.cmap"] if color_map is None else color_map