Gnuplot 从两个数据集打印以两种不同的方式分隔
我需要从.csv文件和以空格分隔的文件中打印数据。两组数据需要出现在同一个绘图上 数据1.datGnuplot 从两个数据集打印以两种不同的方式分隔,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 '
#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使用
说明符接受libCscanf()
格式字符串
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包。