8

我需要从 .csv 文件和空格分隔的文件中绘制数据。两组数据都需要出现在同一个图上。

数据1.dat

 #t   y
  1   1
  2   1
  3   1

数据2.csv

 #t,y
  1,2
  2,2
  3,2

通常,如果两者都是 .csv 集,我会执行以下操作:

 set datafile separator ','
 plot 'data1.csv' using 1:2,'data2.csv' using 1:2

有没有办法在情节语句中包含分隔字符的设置?

plot 'data1.dat' using 1:2,'data2.csv' using datafile separator ',' using 1:2

以上不起作用,我尝试了上述代码的许多不同变体......我没有运气。

4

2 回答 2

3

AFAIK,没有办法指定分隔符。然而,如果你在一个 POSIX 兼容的环境中(并且你的 gnuplot 支持管道——大多数都支持),你可以awk很容易地完成这项工作:

plot 'data1.dat' using 1:2,\
     "<awk -F, '{print $1,$2}' data2.csv" using 1:2
于 2013-01-10T19:58:56.433 回答
3

set datafile separator在你的情况下,你可以给多个字符", "。然后将所有这些单独视为分隔符。

如果您的数据文件的格式非常困难:gnuplotsusing说明符接受 libCscanf()格式字符串

plot "-" us 1:2 "%lf,%lf"
1,2
2,3
3,4
e

您可以为plot命令中的每个文件提供不同的格式字符串。请注意,gnuplot 仅接受“双”fp 数字作为输入,因此您必须使用%leor%lf说明符。

检查help using examples这里是格式的完整描述。

于 2015-08-24T16:28:42.093 回答