我的代码中有一个类似四叉树的结构,我想在 gnuplot 中对其进行可视化。这意味着我想查看矩形细分。我想在 gnuplot 中使用它的原因是因为我想在这个轮廓上绘制一个 2d 函数以显示细分数量和函数值之间的相关性。
有没有人知道如何做到这一点?
我能想到两种解决方案——但它们都涉及到你的大量工作。您基本上需要将每一行放入一个文本文件中。有两种方法可以做到——第一种方法是将每个行段放在数据文件中的一行上并用箭头绘制:
#datafile -- Each row represents a line.
x11 y11 x12 y12
x21 y21 x22 y22
...
然后你绘制它:
set style arrow 1 nohead
plot 'datafile' u 1:2:($3-$1):($4-$2) w vec
将每个点单独放置的第二种方法,用空格分隔点组:
#datafile -- each row represents a point
x11 y11
x12 y12
x21 y21
x22 y22
...
然后你用以下方式绘制这个:
plot 'datafile' u 1:2 w l
将您的数据转换成这种形式应该不会太难——只需遍历每个分支,直到到达一个叶子并写出与该叶子相关的 4 行。某些行(或其部分)将被复制,但这可能不会成为太大的问题......
编辑
我没有意识到您需要在顶部绘制 2d 函数。在这种情况下,我们将需要使用splot
来绘制数据:
set term push #save terminal info
set term unknown
set contour
set cntrparam ... #whatever you need to make your contours appear the way you want
set table "junk_temporary_file.dat"
splot f(x,y) #whatever function you choose goes here.
unset table
unset contour
set term pop #restore terminal info
set view map
splot 'datafile' u 1:2:(0.0) w l,\
'junk_temporary_file.dat' u 1:2:3 w l #optional line specs here.
如果你想要颜色,它会更容易一点(很多):
set view map
splot f(x,y) w pm3d,\
'datafile' u 1:2:(0.0) w l