Поверхность GNUplot с использованием предопределенной цветовой карты

Мой файл данных представляет собой матрицу 9800x128 значений с плавающей запятой, и у меня возникли проблемы с построением поверхностного графика, который должен быть похож на график MATLABs surf ().

С использованием:

splot '/directory/data.txt' every ::1:1 matrix with lines

работает нормально, но все в одном цвете, что делает невозможным увидеть, что происходит. Цветовая палитра, которую я импортировал:

set palette defined (0 0 0 0.5, 1 0 0 1, 2 0 0.5 1, 3 0 1 1, 4 0.5 1 0.5, 5 1 1 0, 6 1 0.5 0, 7 1 0 0, 8 0.5 0 0)

Это похоже на значение по умолчанию, используемое в MATLAB. Рисуем просто 2D-контур с помощью этой палитры:

plot '/directory/data.txt' matrix notitle with image

работает нормально, как только я пытаюсь совместить цветовую карту с поверхностными графиками, как показано ниже:

splot '/directory/data.txt' каждые :: 1: 1 матрица с изображением

Я получаю следующее предупреждающее сообщение, и у меня остается пустой график.

warning: Number of pixels cannot be factored into integers matching grid. N = 1244473  K = 762

person user2742907    schedule 21.10.2014    source источник


Ответы (1)


Если ваши данные сохранены в матричном формате, т. Е. В виде

z00 z10 z20 z30 ...
z01 z11 z21 z31 ...
z02 z12 z22 z32 ...
z03 z13 z23 z33 ...
...

тогда вы можете построить данные с помощью

set palette defined (0 0 0 0.5, 1 0 0 1, 2 0 0.5 1, 3 0 1 1, 4 0.5 1 0.5, 5 1 1 0, 6 1 0.5 0, 7 1 0 0, 8 0.5 0 0)
splot 'data.txt' matrix with pm3d
person Christoph    schedule 21.10.2014