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()
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()
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()
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()
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