使用gnuplot将公式输出结果保存为数据文件
在gnuplot中将公式输出结果保存为数据文件的方法
当然可以!gnuplot完全支持把公式计算的结果或者绘图时用到的衍生数据导出成数据文件,结合你已经在使用的day($0)公式和CSV文件场景,给你两种实用的方法:
方法1:用set print手动循环输出
这种方式灵活性高,适合你需要自定义输出内容和格式的场景:
- 先指定输出文件,把后续的打印内容定向到文件里:
set print "calculated_results.txt"
- 先获取CSV文件的总行数(避免手动数行数):
stats "filename.csv" nooutput # 执行后总行数存在STATS_records变量里
- 循环计算并输出每一行的结果:
do for [i=0:int(STATS_records-1)] { calculated_val = day(i) # 对应你plot里的day($0)计算逻辑 print i, calculated_val # 输出行索引和计算值,默认空格分隔 }
- 最后恢复输出到终端:
set print
如果需要逗号分隔或者指定小数位数,可以用sprintf格式化输出,比如:
print sprintf("%.3f, %.3f", i, calculated_val)
方法2:利用set table直接导出绘图数据
如果你只需要导出plot命令中用到的计算结果,这个方法更快捷,不需要写循环:
# 开启table模式,指定输出文件 set table "plot_data_export.dat" # 执行你的plot命令,此时不会生成图形,而是把计算后的数据写入文件 plot "filename.csv" u 0:(day($0)) # 关闭table模式,恢复正常绘图 unset table
这个方法输出的是纯数据行,没有额外的表头信息,直接就是你需要的行索引和day($0)计算结果。要是你之前用的是图形终端(比如png、x11),导出后记得切换回原来的终端类型,比如set terminal x11。
内容的提问来源于stack exchange,提问作者STOI
相关产品推荐
相关产品推荐

