gnuplot every命令使用异常:如何按指定行间隔绘制数据?
解决gnuplot矩阵数据中every命令筛选行的问题
核心误区
gnuplot对矩阵格式数据的every参数逻辑和普通列数据完全不同,直接套用普通数据的行筛选写法会失效,这是你当前操作的关键问题。
矩阵数据的every语法规则
矩阵数据的结构是:每行对应一个固定Y值,每列对应一个固定X值,单元格为Z值。针对矩阵的every语法格式为:
every {<点间隔>}:{<行间隔>}:{<列间隔>}:{<块间隔>}
要筛选指定行,需明确指定起始行和行间隔,格式为every ::<起始行>::::<行间隔>(中间空缺的部分表示默认全取对应维度的内容)。
正确写法示例
- 如果你的矩阵数据不带表头(第0行就是第一个Y系列的实际数据),要取第0行开始每3行的数据,命令应为:
plot $DATA matrix every ::0:::3 with linespoints - 如果你的矩阵带表头(第一行是X标签、第一列是Y标签),实际数据行从第1行开始,命令需调整为:
plot $DATA matrix header every ::1:::3 with linespoints
剩余行的处理方案
后续绘制剩余行时,只需修改起始行参数即可:
- 取第1行开始每3行:
every ::1:::3 - 取第2行开始每3行:
every ::2:::3
内容的提问来源于stack exchange,提问作者Marionette_66
相关产品推荐
相关产品推荐

