Exemplo n.º 1
0
    def add_descriptions(
        self,
        ax: plt.axis,
        experiment: Union[str, None] = 'Belle II',
        luminosity: Union[str, int, float, None] = '',
        additional_info: Union[str, None] = None,
        small_title: Union[bool, None] = False,
        preliminary: Union[bool, None] = True,
        title_indent: Union[int, None] = 0,
        exp_nr: Union[int, None] = None,
        proc_nr: Union[int, None] = None,
        buck_nr: Union[int, None] = None,
    ):

        # generate luminosity text
        if type(luminosity) == int or type(luminosity) == float:
            luminosity = r"$\int \mathcal{L} \,\mathrm{d}t=" + "{:.0f}".format(
                np.round(luminosity, 0)) + "\,\mathrm{pb}^{-1}$"

        # add some additional dataset meta data
        if exp_nr:
            luminosity += f"\nExp. {exp_nr}"
            if proc_nr:
                luminosity += f", Proc {proc_nr}"
            if buck_nr:
                luminosity += f", Buck. {buck_nr}"

        if small_title:
            ax.set_title('{}'.format(' ' * title_indent) + experiment +
                         '\n{}'.format(' ' * title_indent) +
                         '{}'.format('(Preliminary)' if preliminary else ''),
                         loc="left",
                         fontdict={
                             'style': 'normal',
                             'weight': 'bold'
                         })
            ax.set_title(luminosity, loc="right")
        else:
            ax.set_title('{}'.format(' ' * title_indent) + experiment,
                         loc="left",
                         fontdict={
                             'size': 16,
                             'style': 'normal',
                             'weight': 'bold'
                         })
            ax.set_title('{}'.format('(Preliminary) ' if preliminary else '') +
                         luminosity,
                         loc="right")

        ax.annotate(additional_info, (0.02, 0.98),
                    xytext=(4, -4),
                    xycoords='axes fraction',
                    textcoords='offset points',
                    fontweight='bold',
                    ha='left',
                    va='top')
Exemplo n.º 2
0
def plot_probe_electrodes(
    rsites: pd.DataFrame,
    ax: plt.axis,
    TARGETS: list = [],
    annotate_every: Union[int, bool] = 5,
    x_shift: bool = True,
    s: int = 25,
    lw: float = 0.25,
    x_pos_delta: float = 0,
):
    x = np.ones(len(rsites)) * 1.025 + x_pos_delta
    if x_shift:
        x[::2] = 1.025 + x_pos_delta - 0.05
        x[2::4] = 1.025 + x_pos_delta - 0.025
        x[1::4] = 1.025 + x_pos_delta + 0.025
    else:
        x = (x_pos_delta +
             np.tile([0.975, 1.025, 1.0, 1.05], np.int(np.ceil(
                 len(rsites) / 4)))[:len(rsites)])

    if TARGETS is not None:
        colors = [
            rs.color if rs.brain_region in TARGETS else
            ([0.3, 0.3, 0.3] if rs.brain_region in ("unknown",
                                                    "OUT") else blue_grey)
            for i, rs in rsites.iterrows()
        ]
    else:
        colors = [rs.color for i, rs in rsites.iterrows()]

    ax.scatter(
        x,
        rsites.probe_coordinates,
        s=s,
        lw=lw,
        ec=[0.3, 0.3, 0.3],
        marker="s",
        c=colors,
    )

    if annotate_every:
        for i in np.arange(len(x))[::annotate_every]:
            ax.annotate(
                f"{rsites.site_id.iloc[i]} - {rsites.brain_region.iloc[i]}",
                (0.6, rsites.probe_coordinates.iloc[i]),
                color=colors[i],
            )
    ax.set(xlim=[0.5, 1.25], ylabel="probe coordinates (um)")
Exemplo n.º 3
0
def add_descriptions_to_plot(
    ax: plt.axis,
    experiment: Union[str, None] = None,
    luminosity: Union[str, None] = None,
    additional_info: Union[str, None] = None,
):
    ax.set_title(experiment,
                 loc="left",
                 fontdict={
                     'size': 16,
                     'style': 'normal',
                     'weight': 'bold'
                 })
    ax.set_title(luminosity, loc="right")
    ax.annotate(additional_info, (0.02, 0.98),
                xytext=(4, -4),
                xycoords='axes fraction',
                textcoords='offset points',
                fontweight='bold',
                ha='left',
                va='top')