【问题标题】:How to plot only a subset of GNUPLOT's splot result?如何仅绘制 GNUPLOT 的 splot 结果的一个子集?
【发布时间】:2018-01-08 17:28:28
【问题描述】:

我正在使用 GNUPLOT 的 splot 函数来显示两个自变量的值。但是,大部分数据,a)我不感兴趣,b)我最终想删除“set view map”,只看到我感兴趣的数据部分作为 3D 投影。目前,有太多的表面无法真正看到我想要的情节部分,它们落在一个盆地内。

我只想显示沿 x = y 的数据,可能在任一方向上都有一个单位的方差,因此更多的是一条数据,而不仅仅是落在一条直线上的数据。它将在 (0,0) 附近开始并在 (6,6) 附近结束。

我的基本 GNU 代码是:

set palette rgbformulae 30,31,32
set size square
set view map
splot 'free_energy.dat' using 1:2:3 with pm3d

不幸的是,我还没有 10 个声望点来发布图片,所以这里是 splot 图片的链接:

https://i1.wp.com/distributedscience.files.wordpress.com/2018/01/screen-shot-2018-01-05-at-06-44-59.png?ssl=1&w=450

数据文件非常大,因此我很不愿意解析或删除数据本身。下面可以看到一个非常小的列示例。我只对 d.y (x)、dRMSD (y) 和 file.free(因变量)感兴趣。

#! FIELDS d.y dRMSD file.free der_d.y der_dRMSD
#! SET min_d.y -8.01552
#! SET max_d.y 7.99331
#! SET nbins_d.y  92
#! SET periodic_d.y false
#! SET min_dRMSD -1.69088
#! SET max_dRMSD 12.5407
#! SET nbins_dRMSD  82
#! SET periodic_dRMSD false
-8.015520000   -1.690880000 1588.947840498   -0.000000000   -0.000000000
-7.839598791   -1.690880000 1588.947840498   -0.000000000   -0.000000000-
-7.663677582   -1.690880000 1588.947840498   -0.000000000   -0.000000000

【问题讨论】:

  • set xrangeset yrange
  • 这可能沿对角线进行吗? set xrange [0:6], set yrange [0:6] 仍然会给我相当大的数据区域。

标签: 3d gnuplot


【解决方案1】:

尝试如下条件语句:

splot 'free_energy.dat' using 1:2:(($1<$2)?3:1/0) with pm3d

沿 x=y 线切割。稍后您可以更改它,例如:

splot 'free_energy.dat' using 1:2:(($1>0.9*$2 && $1<1.1*$2)?3:1/0) with pm3d

【讨论】:

  • 感谢您的评论。当我有声望时,很高兴为你投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多