In [ ]:
%matplotlib inline
import yt
import logging
logging.getLogger('yt').setLevel(logging.ERROR)
import numpy as np
import matplotlib
matplotlib.rcParams['font.family'] = 'stixgeneral'
matplotlib.rcParams['figure.dpi'] = 150
import matplotlib.pyplot as plt
import os
from mpl_toolkits.axes_grid1 import AxesGrid
from tools import setup_cl
In [ ]:
dirs = ['/home/ychen/data/0only_0525_hinf_nojiggle/',\
'/home/ychen/data/0only_0314_h1_nojiggle/',\
'/home/ychen/data/0only_0330_h0_nojiggle/',\
# '/home/ychen/data/0only_0518_hydro_nojiggle/'
]
filenumbers = [130, 260]
iterator = []
for dir in dirs:
for filenumber in filenumbers:
iterator.append((dir, filenumber))
colors, labels = setup_cl(dirs)
In [ ]:
proj_axis = 'x'
field = 'magnetic_field_x'
fig = plt.figure()
grid = AxesGrid(fig, (0.075,0.075,0.85,0.85),
nrows_ncols = (3, 2),
axes_pad = 0.05,
label_mode = "L",
share_all = True,
cbar_location="right",
cbar_mode="single",
cbar_size="1%",
cbar_pad="0%")
for i, (dir, fno) in enumerate(iterator):
# Load the data and create a single plot
print(dir, fno)
ds = yt.load(os.path.join(dir, 'data/MHD_Jet_nojiggle_hdf5_plt_cnt_%04d' % fno))# load data
ds.coordinates.x_axis['x'] = 2
ds.coordinates.x_axis[0] = 2
ds.coordinates.y_axis['x'] = 1
ds.coordinates.y_axis[0] = 1
center = ds.arr([0, 0, 25], 'kpc')
p = yt.SlicePlot(ds, proj_axis, field, center=center, origin='center-domain',\
width=((50, 'kpc'), (12, 'kpc')),)
# Ensure the colorbar limits match for all plots
#p.set_zlim('density', 1.67E-28, 1.67E-25)
p.set_zlim(field, -1E-4, 1E-4)
p.set_cmap(field, 'seismic')
p.set_buff_size((1000,240))
p.set_font_size(9)
if i // len(filenumbers) == 0:
p.annotate_timestamp(0.80, 0.80, time_format="{time:6.2f} {units}", time_unit='Myr', text_args={'color':'k'})
if i % len(filenumbers) == 0:
p.annotate_text((0.04, 0.80), labels[dir], coord_system='axis', text_args={'color':'k'})
# This forces the ProjectionPlot to redraw itself on the AxesGrid axes.
plot = p.plots[field]
plot.figure = fig
plot.axes = grid[i].axes
plot.cax = grid.cbar_axes[i]
# Finally, this actually redraws the plot.
p._setup_plots()
fig.set_figwidth(8)
In [ ]:
for i, ax in enumerate(grid.axes_all):
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.set_ylim(-6, 6)
ax.set_yticks([-5,0,5])
ax.set_yticklabels([-5,0,5])
ax.set_xlim(0, 50)
ax.set_xticks(np.arange(0,55,5))
ax.set_xticklabels([0,'',10,'',20,'',30,'',40,'',''50''])
ax.minorticks_off()
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.grid(ls='--', alpha=0.3)
if i == 2:
ax.set_ylabel('y (kpc)')
else:
ax.set_ylabel('')
if i // len(filenumbers) == len(dirs)-1:
ax.set_xlabel('z (kpc)')
fig.set_figwidth(8)
fig.savefig('compare_3_nojiggle_magnetic_field_x.pdf', bbox_inches='tight')
fig
In [ ]:
proj_axis = 'x'
field = 'magnetic_field_z'
fig = plt.figure()
grid = AxesGrid(fig, (0.075,0.075,0.85,0.85),
nrows_ncols = (3, 2),
axes_pad = 0.05,
label_mode = "L",
share_all = True,
cbar_location="right",
cbar_mode="single",
cbar_size="1%",
cbar_pad="0%")
for i, (dir, fno) in enumerate(iterator):
# Load the data and create a single plot
print(dir, fno)
ds = yt.load(os.path.join(dir, 'data/MHD_Jet_nojiggle_hdf5_plt_cnt_%04d' % fno))# load data
ds.coordinates.x_axis['x'] = 2
ds.coordinates.x_axis[0] = 2
ds.coordinates.y_axis['x'] = 1
ds.coordinates.y_axis[0] = 1
center = ds.arr([0, 0, 25], 'kpc')
p = yt.SlicePlot(ds, proj_axis, field, center=center, origin='center-domain',\
width=((50, 'kpc'), (12, 'kpc')),)
# Ensure the colorbar limits match for all plots
#p.set_zlim('density', 1.67E-28, 1.67E-25)
p.set_zlim(field, -1E-4, 1E-4)
p.set_cmap(field, 'seismic')
p.set_buff_size((1000,240))
p.set_font_size(9)
if i // len(filenumbers) == 0:
p.annotate_timestamp(0.80, 0.80, time_format="{time:6.2f} {units}", time_unit='Myr', text_args={'color':'k'})
if i % len(filenumbers) == 0:
p.annotate_text((0.04, 0.80), labels[dir], coord_system='axis', text_args={'color':'k'})
# This forces the ProjectionPlot to redraw itself on the AxesGrid axes.
plot = p.plots[field]
plot.figure = fig
plot.axes = grid[i].axes
plot.cax = grid.cbar_axes[i]
# Finally, this actually redraws the plot.
p._setup_plots()
fig.set_figwidth(8)
In [ ]:
for i, ax in enumerate(grid.axes_all):
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.set_ylim(-6, 6)
ax.set_yticks([-5,0,5])
ax.set_yticklabels([-5,0,5])
ax.set_xlim(0, 50)
ax.set_xticks(np.arange(0,55,5))
ax.set_xticklabels([0,'',10,'',20,'',30,'',40,'',''])
ax.minorticks_off()
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.grid(ls='--', alpha=0.3)
if i == 2:
ax.set_ylabel('y (kpc)')
else:
ax.set_ylabel('')
if i // len(filenumbers) == len(dirs)-1:
ax.set_xlabel('z (kpc)')
fig.set_figwidth(8)
fig.savefig('compare_3_nojiggle_magnetic_field_z.pdf', bbox_inches='tight')
fig
In [ ]:
dirs = [
'/home/ychen/data/0only_0525_hinf_nojiggle/',\
'/home/ychen/data/0only_0314_h1_nojiggle/',\
#'/home/ychen/data/0only_0330_h0_nojiggle/',\
#'/home/ychen/data/0only_0518_hydro_nojiggle/'
]
filenumbers = [320]
iterator2 = []
for dir in dirs:
for filenumber in filenumbers:
iterator2.append((dir, filenumber))
proj_axis = 'x'
field = 'magnetic_field_x'
fig = plt.figure()
grid = AxesGrid(fig, (0.075,0.075,0.85,0.85),
nrows_ncols = (2, 1),
axes_pad = 0.05,
label_mode = "L",
share_all = True,
cbar_location="right",
cbar_mode="single",
cbar_size="1%",
cbar_pad="0%")
for i, (dir, fno) in enumerate(iterator2):
# Load the data and create a single plot
print(dir, fno)
ds = yt.load(os.path.join(dir, 'data/MHD_Jet_nojiggle_hdf5_plt_cnt_%04d' % fno))# load data
ds.coordinates.x_axis['x'] = 2
ds.coordinates.x_axis[0] = 2
ds.coordinates.y_axis['x'] = 1
ds.coordinates.y_axis[0] = 1
center = ds.arr([0, 0, 40], 'kpc')
p = yt.SlicePlot(ds, proj_axis, field, center=center, origin='center-domain',\
width=((60, 'kpc'), (8, 'kpc')),)
# Ensure the colorbar limits match for all plots
#p.set_zlim('density', 1.67E-28, 1.67E-25)
p.set_zlim(field, -1E-4, 1E-4)
p.set_log(field, True, linthresh=1E-5)
p.set_cmap(field, 'seismic')
p.set_buff_size((1800,240))
p.set_font_size(9)
if i // len(filenumbers) == 0:
p.annotate_timestamp(0.80, 0.83, time_format="{time:6.2f} {units}", time_unit='Myr', text_args={'color':'k'})
if i % len(filenumbers) == 0:
p.annotate_text((0.04, 0.83), labels[dir], coord_system='axis', text_args={'color':'k'})
# This forces the ProjectionPlot to redraw itself on the AxesGrid axes.
plot = p.plots[field]
plot.figure = fig
plot.axes = grid[i].axes
plot.cax = grid.cbar_axes[i]
# Finally, this actually redraws the plot.
p._setup_plots()
fig.set_figwidth(10)
In [ ]:
dirs = [
#'/home/ychen/data/0only_0525_hinf_nojiggle/',\
'/home/ychen/data/0only_0314_h1_nojiggle/',\
#'/home/ychen/data/0only_0330_h0_nojiggle/',\
#'/home/ychen/data/0only_0518_hydro_nojiggle/'
]
filenumbers = [400]
iterator2 = []
for dir in dirs:
for filenumber in filenumbers:
iterator2.append((dir, filenumber))
proj_axis = 'x'
field = 'magnetic_field_x'
fig = plt.figure()
grid = AxesGrid(fig, (0.075,0.075,0.85,0.85),
nrows_ncols = (1, 1),
axes_pad = 0.05,
label_mode = "L",
share_all = True,
cbar_location="right",
cbar_mode="single",
cbar_size="1%",
cbar_pad="0%")
for i, (dir, fno) in enumerate(iterator2):
# Load the data and create a single plot
print(dir, fno)
ds = yt.load(os.path.join(dir, 'data/MHD_Jet_nojiggle_hdf5_plt_cnt_%04d' % fno))# load data
ds.coordinates.x_axis['x'] = 2
ds.coordinates.x_axis[0] = 2
ds.coordinates.y_axis['x'] = 1
ds.coordinates.y_axis[0] = 1
center = ds.arr([0, 0, 40], 'kpc')
p = yt.SlicePlot(ds, proj_axis, field, center=center, origin='center-domain',\
width=((80, 'kpc'), (12, 'kpc')),)
# Ensure the colorbar limits match for all plots
#p.set_zlim('density', 1.67E-28, 1.67E-25)
p.set_zlim(field, -1E-4, 1E-4)
p.set_log(field, True, linthresh=1E-5)
p.set_cmap(field, 'RdBu')
p.set_buff_size((1600,240))
p.set_font_size(9)
if i // len(filenumbers) == 0:
p.annotate_timestamp(0.90, 0.83, time_format="{time:6.2f} {units}", time_unit='Myr', text_args={'color':'k'})
if i % len(filenumbers) == 0:
p.annotate_text((0.04, 0.83), labels[dir], coord_system='axis', text_args={'color':'k'})
# This forces the ProjectionPlot to redraw itself on the AxesGrid axes.
plot = p.plots[field]
plot.figure = fig
plot.axes = grid[i].axes
plot.cax = grid.cbar_axes[i]
# Finally, this actually redraws the plot.
p._setup_plots()
fig.set_figwidth(8)
In [ ]:
p.set_log(field, False)
p.set_zlim(field, -1E-4, 1E-4)
p.set_cmap(field, 'seismic')
p.show()
In [ ]:
p.set_log(field, True, linthresh=1E-5)
p.set_zlim(field, -1E-4, 1E-4)
p.set_cmap(field, 'seismic')
p.show()
In [ ]:
for i, ax in enumerate(grid.axes_all):
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.set_ylim(-6, 6)
ax.set_yticks([-5,0,5])
ax.set_yticklabels([-5,0,5])
ax.set_xlim(0, 70)
ax.set_xticks(np.arange(0,75,5))
ax.set_xticklabels([0,'',10,'',20,'',30,'',40,'',50,'',60,'',70])
ax.minorticks_off()
ax.tick_params(axis='x', color='grey')
ax.tick_params(axis='y', color='grey')
ax.grid(ls='--', alpha=0.3)
if i == 2:
ax.set_ylabel('y (kpc)')
else:
ax.set_ylabel('')
if i // len(filenumbers) == len(dirs)-1:
ax.set_xlabel('z (kpc)')
fig.set_figwidth(8)
In [ ]:
dirs = [
#'/home/ychen/data/0only_0525_hinf_nojiggle/',\
'/home/ychen/data/0only_0314_h1_nojiggle/',\
#'/home/ychen/data/0only_0330_h0_nojiggle/',\
#'/home/ychen/data/0only_0518_hydro_nojiggle/'
]
filenumbers = [400]
iterator2 = []
for dir in dirs:
for filenumber in filenumbers:
iterator2.append((dir, filenumber))
proj_axis = 'x'
field = 'mach_alfven'
fig = plt.figure()
grid = AxesGrid(fig, (0.075,0.075,0.85,0.85),
nrows_ncols = (1, 1),
axes_pad = 0.05,
label_mode = "L",
share_all = True,
cbar_location="right",
cbar_mode="single",
cbar_size="1%",
cbar_pad="0%")
for i, (dir, fno) in enumerate(iterator2):
# Load the data and create a single plot
print(dir, fno)
ds = yt.load(os.path.join(dir, 'data/MHD_Jet_nojiggle_hdf5_plt_cnt_%04d' % fno))# load data
ds.coordinates.x_axis['x'] = 2
ds.coordinates.x_axis[0] = 2
ds.coordinates.y_axis['x'] = 1
ds.coordinates.y_axis[0] = 1
center = ds.arr([0, 0, 40], 'kpc')
p = yt.SlicePlot(ds, proj_axis, field, center=center, origin='center-domain',\
width=((80, 'kpc'), (12, 'kpc')),)
# Ensure the colorbar limits match for all plots
#p.set_zlim('density', 1.67E-28, 1.67E-25)
p.set_zlim(field, 0, 15)
p.set_log(field, False)
p.set_cmap(field, 'viridis')
p.set_buff_size((1600,240))
p.set_font_size(9)
if i // len(filenumbers) == 0:
p.annotate_timestamp(0.90, 0.83, time_format="{time:6.2f} {units}", time_unit='Myr', text_args={'color':'k'})
if i % len(filenumbers) == 0:
p.annotate_text((0.04, 0.83), labels[dir], coord_system='axis', text_args={'color':'k'})
# This forces the ProjectionPlot to redraw itself on the AxesGrid axes.
plot = p.plots[field]
plot.figure = fig
plot.axes = grid[i].axes
plot.cax = grid.cbar_axes[i]
# Finally, this actually redraws the plot.
p._setup_plots()
fig.set_figwidth(8)
In [ ]: