使用Gnuplot的3D映射图不准确

时间:2011-05-03 03:14:55

标签: graph 3d gnuplot

我在尝试创建3D(2D映射)图时遇到问题。

我生成的数据应该创建一个3维正态分布凹凸,或者,当“映射”时,它应该看起来像一个扁平的3D图形,颜色用作第三维

我用来生成映射图的脚本如下:

#!/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

当我在以下DataFile上运行它时( http://www.sendspace.com/file/ppibyw

我得到以下输出 enter image description here

图例表示z范围为0-0.03,但是,数据文件具有更大的z值,例如0.1。显然我无法发布一个如此不准确的图表。此外,我需要一个更好的图表,以便更好地了解我的模拟有什么问题。

有谁知道为什么gnuplot会像这样处理3d映射图?我怀疑它与样品的数量和性质有关。

1 个答案:

答案 0 :(得分:7)

您的问题出在set dgrid3d 51,51

看看如果你写set dgrid3d 51,102(更好)或设置dgrid3d 51,500(更糟糕)会发生什么

重点是(来自帮助)

  

网格在x中间隔相等   (行)和y(列); z   值按加权计算   平均值或样条插值   散点的'z值。在   换句话说,一个规则间隔的网格   是创造和顺利   近似于原始数据   评估所有网格点。的只有   绘制了这个近似值,但是   不是原始数据。

如果你想看到帮助(?dgrid3d),你可以尝试改进近似值,但我宁愿直接绘制数据。你可以通过完全抛弃dgrid3d命令来做到这一点。您必须修改数据文件,以便在x坐标更改时出现空白行。例如

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范围在模拟结果方面作弊....