格式化数据文件以在gnuplot中绘制为pm3d映射

时间:2017-04-26 07:16:26

标签: python gnuplot

在一些模拟之后,我有一个从python脚本生成的三列数据文件。它在前两列中有两个参数,在第三列中有一个函数的值。我读到数据列应该采用特定格式输入到gnuplot中的pm3d。是否有将数据文件格式化为pm3d格式的快捷方式? (每次x值变化后为空白行)。虽然我的数据点间隔均匀,但数据都混淆了,所以我发现格式有点难度。请帮忙。

示例文件

1 2 3
2 6 5
1 1 8
2 5 3

(原始文件有> 40000行)

1 个答案:

答案 0 :(得分:1)

实际上,正如Gnuplot FAQ在3.9中提到的那样,在x坐标的每次变化之后都需要一个空行。它甚至建议使用gawk脚本来执行此操作"转换"。如果您的数据是混合的,您可能需要先对其进行排序,然后应用上述脚本。

假设gawk脚本addblanks.awk包含:

/^[[:blank:]]*#/ {next} # ignore comments (lines starting with #)
NF < 3 {next} # ignore lines which don't have at least 3 columns
$1 != prev {printf "\n"; prev=$1} # print blank line
{print} # print the line

,您的数据文件是,例如input.dat,然后是

sort -k1,1g -k2,2g input.dat | gawk -f addblanks.awk

产生

1 1 8
1 2 3

2 5 3
2 6 5