如何使用 Fortran 将带有特殊字符的特定 GNUPLOT 命令写入 txt 文件?

How to use Fortran to write a specific GNUPLOT command with special characters in to a txt file?

我想使用 Fortran 将 GNUPLOT 命令写入 txt 文件,我可以对大多数简单命令执行此操作,但我在编写包含特殊字符或 AWK 命令的命令时遇到问题。

假设我有一个三列输入文件。第一列用于设置坐标存储在第2列和第3列中的点的颜色。

例如我的输入文件"Input.dat"如下:

blue 1 1
red  2 1
red  3 0
blue 4 1
red  5 1
blue 6 1

我使用以下包含 GNUPLOT 命令的 txt 文件,我用它来绘制我的输入文件。

GNUPLOT.txt:

plot "< awk '{if( == \"blue\") print}' Input.dat" u 2:3 t "blue" w p pt 7, \
     "< awk '{if( == \"red\") print}' Input.dat" u 2:3 t "red" w p pt 7
pause -1

我需要使用 Fortran 命令创建此输入 txt 文件,但我做不到! 您能否告诉我如何使用 Fortran 命令创建类似 GNUPLOT.txt 的 txt 文件?

我使用了以下命令但没有成功:

write( 'GNUPLOT.txt', * )'set pointsize 3'
write( 'GNUPLOT.txt', * )'plot "< awk '{if( == \"blue\") print}' Input.dat" u 2:3 t "blue" w p pt 7, \'
write( 'GNUPLOT.txt', * )'"< awk '{if( == \"red\") print}' Input.dat" u 2:3 t "red" w p pt 7'
write( 'GNUPLOT.txt', * )'pause -1'

提前致谢,

write( 11, * ) 'set pointsize 3'
write( 11, * ) 'plot "< awk ''{if( == \"blue\") print}'' Input.dat" u 2:3 t "blue" w p pt 7, \'
write( 11, * ) '"< awk ''{if( == \"red\") print}'' Input.dat" u 2:3 t "red" w p pt 7'
write( 11, * ) 'pause -1'

在字符串中,您必须将用于分隔字符串的字符加倍。

例如,

print *,''''
end

将只打印 '.