Kernel: Python 3 (system-wide)
In [3]:
import os import numpy as np import matplotlib.pyplot as plt import matplotlib.transforms as mtransforms import scipy.integrate as integrate from scipy import signal from scipy.signal import find_peaks from matplotlib.lines import Line2D plt.style.use('../jfm.mplstyle') rainbow = np.loadtxt("../rainbow.tsv") def array2cmpa(X): from matplotlib import colors # Assuming array is Nx3, where x3 gives RGB values # Append 1's for the alpha channel, to make X Nx4 X = np.c_[X,np.ones(len(X))] return colors.LinearSegmentedColormap.from_list('my_colormap', X) rainbow_map = array2cmpa(rainbow) colormap = rainbow_map #'coolwarm' #'plasma' #rainbow_map
In [4]:
!find ../Experimental_Dataset -type f -name "elevation.csv.gz" | xargs dirname | sort | grep "sol3rd" | tee "data_directories.txt" > /dev/null
In [5]:
with open("data_directories.txt","r") as data_directories_file: data_directories = data_directories_file.read().splitlines() amp = 'a1.5cm' locs = ['x=-15.24cm','x=-02.54cm'] xlim = (0,8.5) ylim = (57,70) dx,dt,h,g = 0.3,1/125,50,9810 t0 = np.sqrt(h/g) fig, axes = plt.subplots(ncols=2,nrows=2,figsize=(5.0,3.5),sharey='all',sharex='all',layout='constrained') kwargs = {'vmin':-0.13,'vmax':0.58,'cmap':colormap} vmin,vmax = kwargs['vmin'],kwargs['vmax'] levels = np.arange(vmin,vmax,0.03) # no-flow in the top row, with-flow in the bottom row for axcol, loc in zip(axes,locs): data_dirs = [d for d in data_directories if loc in d and amp in d] #print(data_dirs) for data_dir, ax in zip(data_dirs,axcol): time = np.loadtxt(f"{data_dir}/time.csv",delimiter=',',dtype=int) t_off = np.loadtxt(f"{data_dir}/time_offset.csv") space = np.loadtxt(f"{data_dir}/space.csv",delimiter=',',dtype=int) elev = np.loadtxt(f"{data_dir}/elevation.csv",delimiter=',') space = space*dx/h time = (time*dt - t_off)/t0 elev = elev/h #print(np.amin(elev),np.amax(elev)) X,T = np.meshgrid(space,time) cmp = ax.pcolormesh(X,T,elev,shading='nearest',**kwargs) ctl = ax.contour(X,T,elev,levels=levels,colors='k',linewidths=0.25) ax.set_xlim(*xlim) ax.set_ylim(*ylim) #title = 'with-flow' if 'with_flow' in data_dir else 'no-flow' #ax.set_title(title) for ax in axes[:,0]: ax.set_ylabel(r'$t$') for ax in axes[1,:]: ax.set_xlabel(r'$y$') axes[0,0].set_title(r'no-flow') axes[0,1].set_title(r'with-flow') cbar = fig.colorbar(cmp, ax=axes.ravel().tolist(),location='right',shrink=0.70) cbar.ax.set_title(r'$\eta$') cbar.add_lines(ctl) #for label, ax in zip(['a)', 'b)'], axes[:,0]): # trans = mtransforms.ScaledTranslation(-35/72, 7/72, fig.dpi_scale_trans) # ax.text(0.0, 1.0, label, transform=ax.transAxes + trans, # fontsize='9.0', verticalalignment='top', fontfamily='Times New Roman', # bbox=dict(facecolor='1.0', edgecolor='none', pad=2.0)) plt.savefig('Fig_14.jpg') plt.show()
Out[5]:
In [0]: