3d - 3d 数据的 2d 输出不是通过块号而是通过列的值
问题描述
我有一些像这样的 3d 数据:
0.0 1. 2.
0.0 2. 7.
0.0 3. 1.1
0.1 1. 8.
0.1 2. 5.
0.1 3. 1.
0.2 1. 6.
0.2 2. 3.
0.2 3. 4.
第一行是“t”(时间)轴,第二列是“x”,第三列是我的变量的实际值。当然,以上是示意图。
现在,我只想绘制“时间”t=0.2 的块。有了上面的内容,我可以简单地查看它对应的块号,我可以使用every :::2::2
在这种情况下。问题是我的实际文件有数万行,组成了数千个块。如果我只想绘制与某个时间对应的块,那么计算某个时间对应的块号将非常繁琐。因此,有没有办法给 gnuplot 什么“时间”(如上例中的第一列)我希望它绘制相应的块;和 gnuplot 在内部计算出相关的块?您可能会假设我知道确切的时间,尽管最好是给 gnuplot 一个时间 t,然后 gnuplot 查找文件的第一列并输出时间最接近给定时间 t 的块。
解决方案
只需使用三元运算符作为过滤器:
($1==0.2 ? $2 : NaN)
换句话说:如果第一列等于0.2,则取第二列的值作为x值,否则取NaN(不会被绘制。)
代码:
### filter data
reset session
$Data <<EOD
0.0 1. 2.
0.0 2. 7.
0.0 3. 1.1
0.1 1. 8.
0.1 2. 5.
0.1 3. 1.
0.2 1. 6.
0.2 2. 3.
0.2 3. 4.
0.3 2. 3.
0.3 1. 2.
0.3 4. 5.
EOD
plot $Data u ($1==0.2 ? $2 : NaN) : 3 w lp pt 7 lc rgb "red"
### end of code
结果:
推荐阅读
- python - RuntimeError 将 yaml 配置文件传递给 Essentia MusicExtractor
- nsis - 使用 NSIS 安装应用程序以创建和控制服务时安装失败
- jquery - 从后端获取后在表单中填充输入值的问题
- angular - 如何将 Angular 4 中的生物指纹认证与 asp.net 核心 Web 应用程序集成?
- android - 电子商务App,如果支付网关完成交易,但我们的服务器未能存储返回的数据怎么办
- c# - 单击关闭按钮后如何取消控制台关闭
- amazon-web-services - ListObjectV2 在 AWS Lambda 中获取拒绝访问错误
- angular-material - 找不到嵌套在 mat-grid-tile 中的 HTML 元素
- python - 使用 pybind11 或 Python C API 编译和执行 AST
- python - 访问排序嵌套列表的第一个元素以获得第二小的第二个元素