【发布时间】:2019-02-21 20:15:48
【问题描述】:
在我的模拟中,我有两个相互重叠的数字网格。其中一个(较小的)不是矩形,而是有一个弯曲的边界(至少是我关心的区域)。
我想将这两个数字网格以及它们在 gnuplot 中如何相互重叠作为 2D 图可视化。结果应该类似于:
红色网格跨越整个区域,黑色网格是带有弯曲边界的红色网格的子集。蓝线是边界的近似值。
到目前为止,这看起来不错,除了这是一个 3D 图,我从上面看是完全正确的;即在 gnuplot 中,如果我愿意,我可以旋转它。
gnuplot> show view
view is 0 rot_x, 270 rot_z, 1 scale, 1 scale_z
从这个角度看,z 轴的信息是不可见的。它有点消除了 3D 绘图的原因,因为您所看到的只是数据所在的网格。而这正是我想要的。
但是,我宁愿有一个 2D 绘图,因为在 gnuplot 中处理这些绘图更有效,而且 gnuplot 会在 3D 绘图周围产生巨大的边距,这会减少可用区域。如何将此网格投影到 2D 平面并让 gnuplot 可视化它?
如何创建上面的情节: 我有一个在整个网格上定义的变量,但仅在网格的黑色部分为非零(并且始终为正)。数据以通常的方式存储在文件“values.dat”中---在极坐标的三列中:
r(半径)--theta(极角)--值
然后你可以得到上面的情节:
set style line 1 lt 1 dt 3 lc rgb "red"
set style line 2 lt 1 lc rgb "black"
set view 0, 270, 1, 1
splot "values.dat" u 1:2:(1.0) w l ls 1, \
"values.dat" u 1:2:($3>0.0?1.0:NaN) w l ls 2
图中的蓝线是附加的,来自网格边界的单独近似值,但与这里的问题并不真正相关。
【问题讨论】:
-
你在 gnuplot 中做了这个图表吗?生成此图的代码在哪里?网格间距的数据如何?
-
@theozh,我在我的问题中添加了一个部分,解释数据结构和 gnuplot 命令。
-
我刚刚发现gnuplot 中的
set view map命令完全符合我的要求!成功!