\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usepgfplotslibrary{colormaps}
\usepgfplotslibrary{groupplots}

\begin{document}
	\begin{tikzpicture}
	\def\yPosRel{\pgfkeysvalueof{/pgfplots/ymax}*.86}
	\def\xLeftPosRel{0.03*\pgfkeysvalueof{/pgfplots/xmax}}
	\def\xRightPosRel{\pgfkeysvalueof{/pgfplots/xmax}*.96}
	
	\begin{groupplot}[view={0}{90},
	colormap name = viridis,
	xlabel=$k$,
	ylabel={$\hbar \omega$ (meV)},
	xmin=0,
	ymin=0,
	ymax=0.69,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	height=4cm,
	point meta min=0,
	point meta max=6,
	group/xlabels at = edge bottom,
	group style = {group size = 4 by 6,	%cols by rows
		horizontal sep=0.1cm,
		vertical sep=0.1cm,
		xlabels at = edge bottom
	}]
	\nextgroupplot[
	xticklabels = {,,},
	xlabel={},
	enlargelimits=false,
	axis on top,
	colorbar horizontal, 
	every colorbar/.append style={
		at={(0,1.4)},anchor=north west,
		width=
		4*\pgfkeysvalueof{/pgfplots/parent axis width}+
		3*\pgfkeysvalueof{/pgfplots/group/horizontal sep},
		xlabel={$S(k,\hbar\omega)$ (arb. units)},
		xlabel near ticks,
		xtick={0,1,2,3,4,5,6,7,8,9,10,11,12},
		axis on top,
		xtick pos=top,
		xticklabel pos=top,
		xticklabel style={
			/pgf/number format/.cd,
			fixed,
			precision=1,
			fixed zerofill,
		}
	}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h000_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(a)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x/J=0.0$};
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h010_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(b)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.1J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h020_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(c)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.2J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={},]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h030_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(d)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.3J$};
	
	
	%%%% Row 2 
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	xlabel={},
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h035_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(e)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.35J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h040_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(f)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.4J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h050_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(g)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.5J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h060_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(h)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.6J$};
	
	
	%%%% Row 3
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	xlabel={},
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h070_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(i)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.7J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h080_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(j)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.8J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h090_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(k)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=0.9J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h100_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(l)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.0J$};
	
	
	
	
	%%%% Row 4
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	xlabel={},
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h110_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(m)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.1J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h120_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(n)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.2J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h130_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(o)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.3J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h140_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(p)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.4J$};
	
	
	
	
	%%%% Row 5
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	xlabel={},
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h150_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(q)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.5J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h158114_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(r)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x\approx h_\mathrm{f}$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h1600_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(s)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.6J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {,,},
	yticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h1604_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(t)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x\approx h_\mathrm{c}$};
	
	
	
	%%%% Row 6
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h170_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(u)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.7J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	yticklabels = {,,},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h180_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(v)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.8J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	yticklabels = {,,},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h190_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(w)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=1.9J$};
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,$2\pi$},
	yticklabels = {,,},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h200_m1000/Skw_inelastic.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(x)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$h_x=2.0J$};
	
		
	
	\end{groupplot}
	
	\end{tikzpicture}
\end{document}
