首页 > 解决方案 > 在 Gnuplot 中绘制来自两个不同文件的数据

问题描述

我有两个不同的文本文件,其中包含要绘制的数字列表。一个文件包含 x 值,另一个文件包含 y 值。如果它们在同一个文件中,我知道如何绘制它们,但我不知道如何处理单独的文件。我该怎么做?顺便说一句,我正在使用 GNUplot。

如果有用的话,这里有两个文件中的两个小数据位:

x values
0
563
1563
2563
3563
4563
5563

corresponding y values
738500.0
683000.0
647000.0
623500.0
607500.0

标签: graphgnuplot

解决方案


我想我已经看到过这样的问题,但我现在找不到。好吧,Linux(与 Windows 不同)有一些内置工具,您可以在其中轻松地逐行附加两个文件。如果您只想在 gnuplot 中执行此操作(因此与平台无关),以下将是一个建议。先决条件是您的文件已经在数据块中。如何完成此操作,请参阅:gnuplot: load datafile 1:1 into datablock

代码:

### merge files by line
reset session

$Data1 <<EOD
0
563
1563
2563
3563
4563
5563
EOD

$Data2 <<EOD
738500.0
683000.0
647000.0
623500.0
607500.0
EOD

maxRow = |$Data1| <= |$Data2| ? |$Data1| : |$Data2|   # find the shorter datablock

set print $Data
    do for [i=1:maxRow] {
        print $Data1[i][1:strlen($Data1[i])-1]." ".$Data2[i]
    }
set print

plot $Data u 1:2 w lp pt 7
### end of code

结果:

在此处输入图像描述


推荐阅读