Graph 带有Gnuplot的3D映射图形不准确
我在尝试创建3D(2D映射)图形时遇到问题 我正在生成的数据应该创建一个三维正态分布凹凸,或者,当“映射”时,它应该看起来像一个平坦的三维图形,使用颜色作为第三维 我用于生成映射图的脚本如下所示: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
#!/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崩溃。我有太多的值,在这一点上我放弃了。