两个数据集的绘图分为两种不同的方式

时间:2013-01-10 16:35:54

标签: gnuplot

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

data1.dat

 #t   y
  1   1
  2   1
  3   1

data2.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

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

3 个答案:

答案 0 :(得分:3)

AFAIK,没有办法指定分隔符。但是,如果您处于POSIX兼容环境(并且您的gnuplot支持管道 - 大多数情况下都是这样),您可以非常轻松地将工作分配到awk

plot 'data1.dat' using 1:2,\
     "<awk -F, '{print $1,$2}' data2.csv" using 1:2

答案 1 :(得分:2)

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

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

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

您可以为plot命令中的每个文件指定不同的格式字符串。请注意,gnuplot只接受&#34; double&#34;输入的fp数字,因此您必须使用%le%lf说明符。

选中help using exampleshere是格式的完整说明。

答案 2 :(得分:-2)

数据大小非常小,因此您只需使用以下命令删除一个文件中的所有,

grep -i 's/\,/\    /' ./filename