这是我只用几行代码能得到的最接近结果。颜色可能不完全匹配波长,但您可以通过调整 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