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

\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)},
	ylabel style = {yshift=-0.1cm},
	xmin=0,
	ymin=0,
	ymax=0.69,
	height=4cm,
	point meta min=0,
	point meta max=3,
	group/xlabels at = edge bottom,
	group style = {group size = 2 by 6,	%cols by rows
		horizontal sep=0.1cm,
		vertical sep=0.1cm,
		xlabels at = edge bottom
	}]
	
	\def\gammaXY{1.570796326794897}
	\def\gammaTwelve{1.450506444400109}
	\def\gammaTwentyFive{1.318116071652818}
	\def\gammaFifty{1.047197551196598}
	\def\gammaSeventyFive{0.7227342478134156}
	
	%%% Row 1 = XY
	
	\nextgroupplot[title={$S^{xx}$}, title style = {at = {(axis description cs:0.5,.9)}}, 
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	xticklabels = {,,},
	xlabel={},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,
	colorbar horizontal, 
	every colorbar/.append style={
		at={(0,1.4)},anchor=north west,
		width=
		2*\pgfkeysvalueof{/pgfplots/parent axis width}+
		1*\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=0,
			fixed zerofill,
		}
	}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta000/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(a)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaXY))/\gammaXY*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaXY))/\gammaXY*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaXY))/\gammaXY*abs(cos(deg(0.5*x)))};
	
	
	
	
	
	
	
	
	\nextgroupplot[title={$S^{zz}$}, title style = {at = {(axis description cs:0.5,0.9)}},
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	xticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta000/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(b)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=0.00$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaXY))/\gammaXY*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaXY))/\gammaXY*abs(sin(deg(0.5*x)))};
	
	
	
	
	
	%%% Row 2 = 0.12
	
	\nextgroupplot[
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	xticklabels = {,,},
	xlabel={},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta012/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(c)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaTwelve))/\gammaTwelve*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwelve))/\gammaTwelve*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwelve))/\gammaTwelve*abs(cos(deg(0.5*x)))};
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	xticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta012/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(d)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=0.12$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaTwelve))/\gammaTwelve*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwelve))/\gammaTwelve*abs(sin(deg(0.5*x)))};
	
	
	
	%%% Row 3 = 0.25
	
	\nextgroupplot[
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	xticklabels = {,,},
	xlabel={},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(e)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaTwentyFive))/\gammaTwentyFive*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwentyFive))/\gammaTwentyFive*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwentyFive))/\gammaTwentyFive*abs(cos(deg(0.5*x)))};
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	xticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta025/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(f)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=0.25$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaTwentyFive))/\gammaTwentyFive*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaTwentyFive))/\gammaTwentyFive*abs(sin(deg(0.5*x)))};
	
	
	
	%%% Row 4 = 0.50
	
	\nextgroupplot[
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	xticklabels = {,,},
	xlabel={},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta050/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(g)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaFifty))/\gammaFifty*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaFifty))/\gammaFifty*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaFifty))/\gammaFifty*abs(cos(deg(0.5*x)))};
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	xticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta050/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(h)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=0.50$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaFifty))/\gammaFifty*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaFifty))/\gammaFifty*abs(sin(deg(0.5*x)))};
	
	
	%%% Row 5 = 0.75
	
	\nextgroupplot[
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	xticklabels = {,,},
	xlabel={},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta075/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(i)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaSeventyFive))/\gammaSeventyFive*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaSeventyFive))/\gammaSeventyFive*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaSeventyFive))/\gammaSeventyFive*abs(cos(deg(0.5*x)))};
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	xticklabels = {,,},
	xlabel={},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta075/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(j)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=0.75$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*sin(deg(\gammaSeventyFive))/\gammaSeventyFive*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*sin(deg(\gammaSeventyFive))/\gammaSeventyFive*abs(sin(deg(0.5*x)))};
	
	
	
	%%% Row 6 = Heisenberg
	
	
	\nextgroupplot[
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,},
	ytick={0.0,0.25,0.5},
	yticklabels={0.0,,0.5},
	yticklabel style = {/pgf/number format/fixed, /pgf/number format/zerofill, /pgf/number format/precision=1, },
	enlargelimits=false,
	axis on top,
	]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta100/L100_h000_m1000/Sxx_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(k)};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*abs(sin(deg(0.5*x)))};
	\addplot [dotted, domain=0:2*pi, samples=401, white]{0.23*pi*abs(cos(deg(0.5*x)))};
	
	
	
	\nextgroupplot[
	enlargelimits=false,
	axis on top,
	xtick = {0,1.5708,3.14159,4.7123889,6.28318},
	xticklabels = {0,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,$2\pi$},
	ytick={0.0,0.25,0.5},
	yticklabels = {,,},
	ylabel={}]
	\addplot [matrix plot*,point meta=explicit] table [meta index={2}] {TheoreticalSpectra/Delta100/L100_h000_m1000/Szz_inelastic_normalized.pgfplots};
	\node [color=white, anchor=west] at ($(\xLeftPosRel,\yPosRel)$) {(l)};
	\node [color=white, anchor=east] at ($(\xRightPosRel,\yPosRel)$) {$\Delta=1.00$};
	\addplot [domain=0:2*pi, samples=401, white]{0.5*0.23*pi*abs(sin(deg(x)))};
	\addplot [dashed, domain=0:2*pi, samples=401, white]{0.23*pi*abs(sin(deg(0.5*x)))};
	
	
	\end{groupplot}
	\end{tikzpicture}
\end{document}
