Я строю 3D-поверхность (у меня есть значения z на матрице 8x10 в текстовом файле); Значения z представляют ошибку, поэтому она идет, например. от -20% до +10%. Я хотел бы изобразить это с помощью цветов симметрично, что означает, например. -10% должен иметь ту же интенсивность красного, что и +10%. Значение около 0% (очень маленькие ошибки) должно быть зеленым (или синим или любым другим). Таким образом, чем интенсивнее красный цвет, тем больше ошибка (независимо от того, положительная она или отрицательная). Я рисую, используя:
# line styles
set style line 1 lc rgb '#B2182B' # red
set style line 2 lc rgb '#D6604D' # red-orange
set style line 3 lc rgb '#F4A582' #
set style line 4 lc rgb '#FDDBC7' # pale orange
set style line 5 lc rgb '#D1E5F0' # pale blue
set style line 6 lc rgb '#92C5DE' #
set style line 7 lc rgb '#4393C3' # medium blue
set style line 8 lc rgb '#2166AC' # dark blue
# palette
set palette defined ( 0 '#B2182B',\
1 '#D6604D',\
2 '#F4A582',\
3 '#FDDBC7',\
4 '#D1E5F0',\
5 '#92C5DE',\
6 '#4393C3',\
7 '#2166AC' )
set dgrid3d 30,30 gauss 1
splot 'file.csv' matrix using 1:2:3 with lines palette title 'Error (%)'
Стили линий и палитру я взял у ColorBrewer RdBu. Я также пытался центрировать вокруг нуля, используя stats
и set cbrange
, но безуспешно.