【问题标题】:Visualize mesh in 2d plot / projection (gnuplot)在 2d 绘图/投影中可视化网格 (gnuplot)
【发布时间】: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 命令完全符合我的要求!成功!

标签: 3d grid 2d gnuplot


【解决方案1】:

gnuplot 命令

set view map

完全按照我的意愿行事。

来自 gnuplot 文档:

它支持将 3D 投影或正交 2D 投影到类似 2D 绘图的地图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多