Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot 从两个数据集打印以两种不同的方式分隔_Gnuplot - Fatal编程技术网

Gnuplot 从两个数据集打印以两种不同的方式分隔

Gnuplot 从两个数据集打印以两种不同的方式分隔,gnuplot,Gnuplot,我需要从.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语句中包含分隔字符的设置 plot '

我需要从.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语句中包含分隔字符的设置

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

上面的代码不起作用,我尝试了上面代码的许多不同变体……我运气不好。

好吧,没有办法指定分隔符。但是,如果您处于符合POSIX的环境中(并且您的gnuplot支持管道——大多数都支持管道),那么您可以非常轻松地将工作分配给
awk

plot 'data1.dat' using 1:2,\
     "<awk -F, '{print $1,$2}' data2.csv" using 1:2
使用1:2绘制“data1.dat”\

“您可以为
设置数据文件分隔符”
指定多个字符,在您的情况下,“
”。所有这些字符都被单独视为分隔符

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

plot "-" us 1:2 "%lf,%lf"
1,2
2,3
3,4
e
您可以在
plot
命令中为每个文件指定不同的格式字符串。请注意,gnuplot只接受“双”fp数字作为输入,因此您必须使用
%le
%lf
说明符


使用示例检查
help
,这是对格式的完整描述。

我最终从.csv中删除了逗号并插入了空格。您的建议是否仅从.csv中创建一个没有逗号的新文件?我以前从未使用过
awk
。@kxk7607--基本上是这样。
awk
将文件拆分为基本列字段上的d(
-F,
)然后它打印出所需的列。如果其中一列是带有空格和逗号的标签,而我的另一个数据文件是空格分隔的,不适合awk管道,那该怎么办?啊,我会根据这篇文章在标签周围加上双引号:这个答案已经过时了。真的吗?如果我尝试使用更多的一个字符作为分隔符。你使用的是比较旧的gnuplot版本吗?嗯,似乎是4.6.4.2(Ubuntu软件包),最新版本是5.0-这可能是原因吗?目前无法测试。在4.6版本中引入了多个分隔符,我想您只是有一个版本在该更改之前。顺便说一句:如果您想尝试,ubuntu有一个gnuplot5包。