【问题标题】:How to use Fortran to write a specific GNUPLOT command with special characters in to a txt file?如何使用 Fortran 将带有特殊字符的特定 GNUPLOT 命令写入 txt 文件?
【发布时间】:2015-04-12 18:23:36
【问题描述】:

我想使用 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

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

GNUPLOT.txt:

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

提前致谢,

【问题讨论】:

    标签: awk plot fortran gnuplot


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

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

    例如,

    print *,''''
    end
    

    将只打印'

    【讨论】:

    • 使用字符文字作为输出单位也会有问题。
    • @IanH 当然,我只是复制了那个。我假设每个人都知道如何使用输出单位。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多