如何用gnuplot在同一图表中绘制多数据文件的折线图?
问题根源与解决办法
问题出在数据分隔符设置错误:你使用的是TSV(制表符分隔)格式的数据源,但命令里设置了set datafile sep ' '(空格分隔)。同时加载两个文件时,gnuplot无法正确解析制表符分隔的列,导致时间列被错误识别为相同值(或无法解析为有效时间),最终折线呈现为水平线。
修正步骤
- 将数据分隔符改为制表符:
set datafile sep '\t' - 如果文件存在空格与制表符混合的情况,可设置让gnuplot自动识别任意空白字符作为分隔符:
set datafile sep whitespace
修正后的完整命令
set terminal qt size 1300,600 set grid set mxtics 4 set timefmt "%Y-%m-%d %H:%M:%S" set xdata time set datafile sep '\t' # 修正为制表符分隔 set xtics format "%F %R" rotate plot "output1.tsv" using 1:3 title "computer A" with lines,\ "output0.tsv" using 1:3 title "computer B" with lines
单独绘制时能正常运行的原因是:单个文件的列之间可能没有额外空格,gnuplot误打误撞解析对了列位置;但同时加载两个文件时,解析逻辑冲突,导致时间列识别失败,所有数据点都被映射到同一个x轴位置,看起来就是水平线。
内容的提问来源于stack exchange,提问作者Matt Gumbley
相关产品推荐
相关产品推荐

