вывод значения z на каждую точку данных карты pm3d

#gnuplot

#gnuplot

Вопрос:

Мой вопрос касается моего кода в gnuplot. Я хочу выводить данные с помощью pm3d карты и матрицы, а также хочу выводить z значение в каждой точке данных. Я пробовал это:

 set pm3d;set pm3d interpolate 0,0;set pm3d map;
set Palette rgb 33,13,10;splot 'filepath' Matrix
  

Все работает нормально, но я не могу вывести z значения, поэтому я попробовал это

 splot 'filepath' Matrix using 1:2:(sprintf(%g,$3)) with labels
  

но это тоже не работает. Кто-нибудь может мне помочь?

Комментарии:

1. Что именно означает «я не могу вывести значения z» или «также не работает»? Вы должны предоставить полный пример с входными данными, который позволит другим воспроизвести вашу проблему.

Ответ №1:

как написал @Bodo … «не работает» недостаточно и не полезно для других. В вашем коде вы, должно быть, получили несколько сообщений об ошибках, также предоставьте их.

Несколько ошибок в вашем скрипте:

set palette вместо set Palette

splot 'filepath' matrix вместо splot 'filepath' Matrix

sprintf("%g",$3) вместо sprintf(%g,$3)

К вашей реальной проблеме:

splot требуются 3D координаты текст метки, т. е. в вашем случае x:y:z:z или 1:2:3:3

Итак, следующий код, вероятно, выполняет то, что вы намеревались сделать.

 set pm3d
set pm3d interpolate 0,0
set pm3d map
set palette rgb 33,13,10
splot 'filepath' matrix u 1:2:3:(sprintf("%g",$3)) with labels
  

Комментарии:

1. Спасибо, что решили мою проблему, я просто не знал правильного синтаксиса команды label, но с вашим кодом это работает 🙂 это была просто проблема с, как вы сказали, 3d координатами метка 🙂

2. Всегда пожалуйста. Хотя gnuplot имеет довольно хорошее руководство и справочную функцию, иногда бывает трудно найти правильную запись или подходящий пример на демонстрационной странице gnuplot.info/demo . Не забудьте отметить свой вопрос как решенный, т. е. принимающий ответ.