Трехмерный картированный график с Gnuplot Не точно - PullRequest
5 голосов
/ 03 мая 2011

У меня возникли проблемы при попытке создать трехмерный (2D картографический) график.

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

Сценарий, который я использую для создания отображенного графика, следующий:

#!/usr/bin/gnuplot

reset

#set terminal png
set term postscript eps enhanced

set size square
set xlabel "X position"
set ylabel "Y position"
#set zlabel "Synaptic Strength"

#Have a gradient of colors from blue (low) to red (high)
set pm3d map
set palette rgbformulae 22,13,-31

#set xrange [0:110]
#set yrange [0:80]
#set zrange [0:1]

set style line 1 lw 1

#set title "Title"

#Don't want a key
unset key

#set the number of samples
set dgrid3d 51,51

set hidden3d

splot DataFile u 1:2:3

когда я запускаю его на следующем файле данных (http://www.sendspace.com/file/ppibyw)

Я получаю следующий вывод enter image description here

Легенда указывает z-диапазон 0-0,03, однако файл данных имеет гораздо большие значения Z, например 0,1. Очевидно, я не могу опубликовать график, который является настолько неточным. Кроме того, мне нужен лучший график, чтобы лучше понять, что не так с моей симуляцией.

Кто-нибудь знает, почему gnuplot обрабатывает такие трехмерные графики? Я подозреваю, что это связано с количеством и характером образцов.

1 Ответ

7 голосов
/ 05 мая 2011

Ваша проблема в set dgrid3d 51,51

Посмотрите, что произойдет, если вы напишите set dgrid3d 51,102 (намного лучше) или установите dgrid3d 51,500 (намного хуже)

Дело в том, что (из справки)

Сетка равномерно распределена по x (строки) и у (столбцы); Z значения рассчитываются как взвешенные средние или сплайн-интерполяции значения z рассеянных точек. В Другими словами, равномерно распределенная сетка создан и гладкий приближение к необработанным данным оценивается для всех точек сетки. Только это приближение строится, но не необработанные данные.

Вы можете попытаться улучшить аппроксимацию, если хотите увидеть справку (? Dgrid3d), но я бы предпочел просто отобразить данные прямо. Вы можете сделать это, отключив команду dgrid3d. Вам нужно будет изменить файл данных, чтобы при изменении координаты х оставалась пустая строка. Например

3.10000000000000142109 4.15692193816530508599 0.00004084299890679580
3.10000000000000142109 4.33012701892219364908 0.00001123746243460237

3.15000000000000124345 0.08660254037844386521 0.00000816290100763514
3.15000000000000124345 0.25980762113533162339 0.00001935936190868058

Тогда с помощью этого упрощенного скрипта

set terminal png![enter image description here][1]

#set size square
set xlabel "X position"
set ylabel "Y position"

#uncomment the next command to eliminate the mysterious glitch around x=3.4
set yrange [0.1:4.5]
set pm3d map

set output "grid_merged.png"
splot "grid_merged2.dat" u 1:2:3 
set output
set term pop

Я получаю plotting the actual data rather than interpolated data

, что лучше, чем вы получаете на интерполированном графике. Я не уверен, что вызывает сбой в 3.4, его нет на других (не отображенных) видах - изменение yrange устраняет его - хотя я не уверен, что изменение y-диапазона обманывает вас с точки зрения результатов моделирования ....

...