Как создать контур 2d-графика в gnuplot, перейдя из MATLAB

#matlab #2d #gnuplot #contour

Вопрос:

Я переношу некоторые сценарии из MATLAB на C и использую GNUPLOT для построения графиков, в MATLAB я использую следующую команду для построения графиков:

 contourf(nU, 200,'linecolor','non');  

nU содержит матрицу для построения, у меня уже есть код C, который получает данные и помещает их в тот же формат матрицы, из документации GNUPLOT, splot использует следующий формат, поэтому у меня также есть код для передачи данных в файл ‘data.txt» в следующем формате:

 # x, y, z  0.000000 0.000000 0.000000  0.094248 0.000000 0.000000  0.188496 0.000000 0.000000  0.282743 0.000000 0.000000   

Я пытался

 splot 'data.txt'  

и кажется, что он правильно строит данные, но строит вот так:

введите описание изображения здесь

Однако мне нужен 2d заполненный контурный график, это результат работы MATLAB:

введите описание изображения здесь

После построения графика, какие команды я могу использовать для изменения вывода GNUPLOT?

Ответ №1:

Рисунок, который вы показываете, я бы назвал тепловой картой, а не контурной диаграммой. Gnuplot может сделать и то, и другое.

Чтобы получить тепловую карту, что-то вроде этого:

 set view map # 2D projection of 3D surface splot 'data.txt' with pm3d #  

При создании контурной карты необходимо сделать выбор. Сколько контуров? Все то же самое? Цвета? Если вы зайдете так далеко и вам понадобится дополнительная помощь, спросите еще раз. На данный момент я показываю минимальную команду, которая использует все значения по умолчанию:

 set view map set contour splot 'data.txt' with lines nosurface