Skip to content
Snippets Groups Projects
common.py 1.71 KiB
Newer Older
Philipp Niedermayer's avatar
Philipp Niedermayer committed
import scipy
import scipy.signal
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pint

from ..data import *
from ..fitting import *


# Setup pint
SI = pint.UnitRegistry()
SI.setup_matplotlib()
SI.default_format = '~P'


# Colors
# https://arxiv.org/abs/2107.02270
petroff_colors = ["#3f90da", "#ffa90e", "#bd1f01", "#94a4a2", "#832db6", "#a96b59", "#e76300", "#b9ac70", "#717581", "#92dadd"]
cmap_petroff_10 = mpl.colors.ListedColormap(petroff_colors, 'Petroff 10')
mpl.rcParams['axes.prop_cycle'] = mpl.cycler(color=petroff_colors)

cmap_petroff_gradient = mpl.colors.LinearSegmentedColormap.from_list('Petroff gradient', [petroff_colors[i] for i in (9,0,4,2,6,1)])
cmap_petroff_gradient.set_under(petroff_colors[3])
cmap_petroff_gradient.set_over(petroff_colors[7])
#mpl.rcParams['image.cmap'] = cmap_petroff_gradient
Philipp Niedermayer's avatar
Philipp Niedermayer committed

cmap_petroff_bipolar = mpl.colors.LinearSegmentedColormap.from_list('Petroff bipolar', [petroff_colors[i] for i in (2,6,1,3,9,0,4)])
cmap_petroff_bipolar.set_under(petroff_colors[5])
cmap_petroff_bipolar.set_over(petroff_colors[8])


# Matplotlib options
mpl.rcParams.update({
    'figure.figsize': (8, 5),  # Note: overwritten when using the %matplotlib magics
    'figure.dpi': 120,         # Note: overwritten when using the %matplotlib magics
    'figure.constrained_layout.use': True,
    'legend.fontsize': 'x-small',
    'legend.title_fontsize': 'small',
    'grid.color': '#DDD',
})




# Utility methods



def ax_set(ax, swap_xy=False, **kwargs):
    if swap_xy:
        nkwargs = {}
        for k in kwargs:
            nk = (('y' if k[0]=='x' else 'x') + k[1:]) if k[0] in 'xy' else k
            nkwargs[nk] = kwargs[k]
        ax.set(**nkwargs)
    else:
        ax.set(**kwargs)