Exemple #1
0
    def test_block_plot_many(self):
        times = [1., 2., 3.]

        fig = plt.figure(num=None, figsize=(8, 12), dpi=100, facecolor='w', edgecolor='k')
        gs1 = gridspec.GridSpec(len(times), 1)
        plt.matplotlib.rcParams.update({'font.size': 14})

        i = 0
        for t in times:
            ax = fig.add_subplot(gs1[i, 0])
            b = self.swd.block_nearest(t)
            sn_swd.plot_swd(ax, b, is_xlabel=i==len(times)-1, vnorm=1e7, lumnorm=1e36, is_legend=False)
            i += 1
        plt.show()
Exemple #2
0
    def test_block_plot_many(self):
        self.swd.load()
        times = [1., 2., 3.]

        fig = plt.figure(num=None, figsize=(8, 12), dpi=100, facecolor='w', edgecolor='k')
        gs1 = gridspec.GridSpec(len(times), 1)
        plt.matplotlib.rcParams.update({'font.size': 14})

        i = 0
        for t in times:
            ax = fig.add_subplot(gs1[i, 0])
            b = self.swd.block_nearest(t)
            sn_swd.plot_swd(ax, b, is_xlabel=i==len(times)-1, vnorm=1e7, lumnorm=1e36, is_legend=False)
            i += 1
        plt.show()
def plot_shock_details(swd, times, is_legend=True, rnorm=False):
    fig = plt.figure(num=None, figsize=(16, len(times) * 4), dpi=100, facecolor='w', edgecolor='k')
    gs1 = gridspec.GridSpec(len(times), 2)
    plt.matplotlib.rcParams.update({'font.size': 14})

    i = 0
    for t in times:
        b = swd.block_nearest(t)
        ax = fig.add_subplot(gs1[i, 0])
        sn_swd.plot_swd(ax, b, is_xlabel=i == len(times) - 1, vnorm=1e7, lumnorm=1e36, rnorm=rnorm,
                        is_legend=is_legend)
        ax2 = fig.add_subplot(gs1[i, 1])
        sn_swd.plot_swd(ax2, b, is_xlabel=i == len(times) - 1, vnorm=1e7, lumnorm=1e36,
                        is_legend=is_legend, is_ylabel=False)
        i += 1
    plt.show()
Exemple #4
0
    def test_block_plot(self):
        time = 2.
        idx, t = self.swd.time_nearest(time)
        b = self.swd.block_nearest(time)

        fig = plt.figure(num=None, figsize=(12, 8), dpi=100, facecolor='w', edgecolor='k')
        gs1 = gridspec.GridSpec(4, 1)
        plt.matplotlib.rcParams.update({'font.size': 14})
        # if is_vel:
        #     axUbv = fig.add_subplot(gs1[:-1, 0])
        #     axVel = fig.add_subplot(gs1[3, 0])
        # else:
        #     axUbv = fig.add_subplot(gs1[:, 0])

        ax = fig.add_subplot(gs1[:, 0])
        # ax = fig.add_axes((0.1, 0.3, 0.8, 0.65))
        sn_swd.plot_swd(ax, b)
        # ax.legend()
        plt.show()
Exemple #5
0
    def test_block_plot(self):
        self.swd.load()
        time = 2.
        idx, t = self.swd.time_nearest(time)
        b = self.swd.block_nearest(time)

        fig = plt.figure(num=None, figsize=(12, 8), dpi=100, facecolor='w', edgecolor='k')
        gs1 = gridspec.GridSpec(4, 1)
        plt.matplotlib.rcParams.update({'font.size': 14})
        # if is_vel:
        #     axUbv = fig.add_subplot(gs1[:-1, 0])
        #     axVel = fig.add_subplot(gs1[3, 0])
        # else:
        #     axUbv = fig.add_subplot(gs1[:, 0])

        ax = fig.add_subplot(gs1[:, 0])
        # ax = fig.add_axes((0.1, 0.3, 0.8, 0.65))
        sn_swd.plot_swd(ax, b)
        # ax.legend()
        plt.show()
Exemple #6
0
def plot_shock_details(swd, times, **kwargs):
    from pystella.model import sn_swd

    is_legend = kwargs.get('is_legend', False)
    # ylim_par = kwargs.get('ylim_par', (0.001, 11))
    font_size = kwargs.get('font_size', 12)
    # is_grid = kwargs.get('is_grid', False)
    is_adjust = kwargs.get('is_adjust', True)
    is_axes = kwargs.get('is_axes', False)
    dic_axes = kwargs.get('dic_axes', None)
    is_ax_old = False
    xlim = None
    ylim_rho = None
    nrow = len(times)
    ncol = 2

    axes1 = []
    if dic_axes is None:
        dic_axes = {'r': [], 'm': []}
        fig = plt.figure(figsize=(12, nrow * 4))
        # plt.minorticks_on()
        # fig = plt.figure(num=None, figsize=(12, len(times) * 4), dpi=100, facecolor='w', edgecolor='k')
        # gs1 = gridspec.GridSpec(len(times), 2)
    else:
        fig = (dic_axes['r'][0]['rho']).get_figure()
        is_ax_old = True
        is_adjust = False
        # is_legend = False
        kwargs['is_day'] = False

    plt.matplotlib.rcParams.update({'font.size': font_size})
    # plot radius column
    for i, t in enumerate(times):
        if is_ax_old:
            axrho, axpar = dic_axes['r'][i]['rho'], dic_axes['r'][i]['par']
        else:
            axrho = fig.add_subplot(nrow,
                                    ncol,
                                    ncol * i + 1,
                                    label='radius {}'.format(i))
            axpar = None
        axes1.append(axrho)
        legmask = sn_swd.LEGEND_MASK_None
        if is_legend and i == 0:
            legmask = sn_swd.LEGEND_MASK_Rho
        # plot swd(radius)
        b = swd.block_nearest(t)
        axrho, axpar = sn_swd.plot_swd((axrho, axpar),
                                       b,
                                       name=swd.Name,
                                       is_xlabel=(i == len(times) - 1),
                                       legmask=legmask,
                                       is_yrlabel=False,
                                       text_posy=0.88,
                                       **kwargs)
        if not is_ax_old:
            x = axrho.get_xlim()
            if xlim is None:
                xlim = x
            else:
                xlim = (min(x[0], xlim[0]), max(x[1], xlim[1]))
            y = axrho.get_ylim()
            if ylim_rho is None:
                ylim_rho = y
            else:
                ylim_rho = (min(y[0], ylim_rho[0]), max(y[1], ylim_rho[1]))
            # axpar.tick_params(direction='in', which='both', length=4)
            ticks_on(axrho)
            ticks_on(axpar)
            dic_axes['r'].append({
                'itime': i,
                't': t,
                'rho': axrho,
                'par': axpar
            })

    if 'rnorm' in kwargs:
        kwargs.pop('rnorm')
    axes2 = []
    # Plot mass column
    for i, t in enumerate(times):
        if is_ax_old:
            # ax2 = dic_axes['m'][i]['rho']
            axrho, axpar = dic_axes['m'][i]['rho'], dic_axes['m'][i]['par']
        else:
            axrho = fig.add_subplot(nrow,
                                    ncol,
                                    ncol * i + 2,
                                    label='mass {}'.format(i))
            axrho.tick_params(direction='in', which='minor', length=3)
            axpar = None
        axes2.append(axrho)
        legmask = sn_swd.LEGEND_MASK_None

        if is_legend and i == 0:
            legmask = sn_swd.LEGEND_MASK_Vars
        b = swd.block_nearest(t)
        axrho, axpar = sn_swd.plot_swd((axrho, axpar),
                                       b,
                                       name=swd.Name,
                                       is_xlabel=(i == len(times) - 1),
                                       rnorm='m',
                                       legmask=legmask,
                                       is_yllabel=False,
                                       text_posy=0.88,
                                       **kwargs)
        if not is_ax_old:
            dic_axes['m'].append({
                'itime': i,
                't': t,
                'rho': axrho,
                'par': axpar
            })
            ticks_on(axrho)
            axpar.tick_params(direction='in', which='major', length=5)
            ticks_on(axpar)

    # Set limits
    for i, ax in enumerate(axes1):
        ax.set_xlim(xlim)
        ax.set_ylim(ylim_rho)
        # remove labels between subplots
        if not i == len(times) - 1:
            plt.setp(ax.get_xticklabels(), visible=False)

    for i, ax2 in enumerate(axes2):
        ax2.set_ylim(ylim_rho)
        # remove labels between subplots
        if not i == len(times) - 1:
            plt.setp(ax2.get_xticklabels(), visible=False)

    if is_adjust:
        fig.subplots_adjust(wspace=0., hspace=0.)

    # print(len(axes1), len(axes2))
    if is_axes:
        return fig, dic_axes
    return fig