Graph 带有Gnuplot的3D映射图形不准确

Graph 带有Gnuplot的3D映射图形不准确,graph,3d,gnuplot,Graph,3d,Gnuplot,我在尝试创建3D(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 zla

我在尝试创建3D(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
当我在以下数据文件()上运行它时

我得到以下输出

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


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

您的问题在于
集dgrid3d 51,51

看看如果编写
set dgrid3d 51102
(更好)或设置
dgrid3d 51500
(更差)会发生什么情况

重点是(从帮助中)

网格在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
我明白了


这比插值图更好。我不确定是什么原因导致了3.4周围的小故障,其他(未映射)视图上没有这个小故障-更改y范围可以消除它-虽然我不确定更改y范围是否会在模拟结果方面作弊…

Hi puk,我尝试了一下您的脚本,可以重现明显的错误(版本4.4)。我会尝试两件事:1:按照你的建议,减少分数,看看会发生什么。2:减少每个数字的位数。“作为最后的手段,你可以记录你的发现。”沃尔坦我环顾四周,把问题缩小到边缘的平均值。因此,如果有一个3x3数组[0,0,0,0100,0,0,0],那么100的值将基于周围的所有零进行平均。我找到了一个解决方案,它为每个矩阵值绘制一系列小方框,但它使b/c崩溃。我有太多的值,在这一点上我放弃了。