You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gnuplot批量绘图问题:循环变量无法切换数据区间

Gnuplot分段绘图循环异常的解决方法

问题分析

你的代码循环变量intervalo的区间计算逻辑错误,导致每次循环都只选取了前1500行数据:原代码中every ::intervalo::intervalo+1499的起始行是1到10,结束行是1500到1509,完全没有覆盖后续的1500行分段。

修正方案

核心调整点

  1. 正确计算区间索引:每个分段的起始行应为(intervalo-1)*1500,结束行应为intervalo*1500-1(默认gnuplot数据行从0开始计数)
  2. 匹配数据总量:10500行数据每1500行一个分段,共7个有效区间,需将循环范围从1:10改为1:7
  3. 调整输出顺序:将set output放在plot语句之前,确保绘图前已指定输出文件

修正后的完整代码

set datafile separator comma
set xlabel 'Tiempo [minutos]' font ',20'
set ylabel 'Precio [USD]' font ',20'
set term png font 'Ubuntu,15'

do for [intervalo = 1:7] {
    set output 'Grafica_Intervalo'.intervalo.'.png'
    start = (intervalo - 1) * 1500
    end = intervalo * 1500 - 1
    plot 'WTI_Intraday_1min_2011_2012.csv' every ::start::end u 0:2 w l lt rgb 'red' lw 1 title 'Intervalo '.intervalo
}

特殊情况处理

如果你的CSV文件第一行是标题(非数据行),需要从第二行开始读取数据,只需修改区间计算逻辑:

start = (intervalo - 1) * 1500 + 1
end = intervalo * 1500

内容的提问来源于stack exchange,提问作者Fernando L. R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:07:01