Graphics 在gnuplot中绘制四叉树轮廓

Graphics 在gnuplot中绘制四叉树轮廓,graphics,gnuplot,quadtree,Graphics,Gnuplot,Quadtree,我的代码中有一个类似四叉树的结构,我想在gnuplot中可视化它。这意味着我希望看到矩形细分。我之所以希望在gnuplot中使用它,是因为我想在这个轮廓上绘制一个2d函数,以显示细分量和函数值之间的相关性 ayone对如何做到这一点有什么想法吗?我可以想到两种解决方案——但它们都涉及到你的大量工作。您基本上需要将每一行放入一个文本文件中。有两种方法可以做到这一点——第一种方法是将每一行分段放在数据文件中的一行上,然后用箭头打印: #datafile -- Each row represents

我的代码中有一个类似四叉树的结构,我想在gnuplot中可视化它。这意味着我希望看到矩形细分。我之所以希望在gnuplot中使用它,是因为我想在这个轮廓上绘制一个2d函数,以显示细分量和函数值之间的相关性


ayone对如何做到这一点有什么想法吗?

我可以想到两种解决方案——但它们都涉及到你的大量工作。您基本上需要将每一行放入一个文本文件中。有两种方法可以做到这一点——第一种方法是将每一行分段放在数据文件中的一行上,然后用箭头打印:

#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.
如果您想要颜色,则更容易:


我想你想在这里面有背景吗?--换句话说,看起来像自适应网格优化模拟的网格?您的数据文件是如何组织的?我已经实现了您的第二个建议,并且它正在工作!你还知道一种在这些矩形上渲染2d函数的方法吗,就好像它们是函数的轮廓一样?@BenRuijl——你是说3d绘图(如x,y,value)?你想要轮廓(线条)还是颜色?我的意思是一个3d函数,所以R^2->R。我想要线框中的函数,这样下面的四叉树是可见的。对不起,我不清楚@BenRuijl——如果我的编辑对您有效(或无效),请告诉我。
set view map
splot f(x,y) w pm3d,\
      'datafile' u 1:2:(0.0) w l