2014-10-21 4 views
1

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

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

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 «/ каталог/data.txt 'each :: 1: 1 с изображением

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

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

ответ

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 
+0

Отлично, спасибо! – user2742907