Это самое близкое, что я мог придумать, используя всего несколько строк кода. Цвета, вероятно, не точно соответствуют длинам волн, но вы должны быть в состоянии точно настроить их, играя с третьим (цветным) аргументом команды patch
.
x = 350:900;
y = ((x-650).^2)/4000 + 10 + 5*rand(size(x));
patch([x(1) x x(end)], [0 y 0], [0 0 5*(1:numel(x))], 'FaceColor', 'interp')
colormap jet