2

大家好,stackoverflow 上所有可爱的人,

我正在尝试使用 gnuplot 绘制数据。我首先阅读表格并提取我想要的数据。我将此数据写入 .dat 文件。截至目前,我只是试图通过命令行绘制它,但会在它工作后添加必要的代码以从 python 脚本中绘制它。

我创建 .dat 文件的代码-

#!/usr/bin/python

file = open("test_m.rdb")
table = open('table.dat', 'w+')

trash = file.readline()

trash = file.readline()

data = file.readline()
i = data.split()
flux = i[2]
observed = i[4]
table.write(flux + " " + observed,)

while 1:
    line = file.readline()
    i = line.split()
    try:
        flux = i[2]
        observed = i[4]
    except IndexError:
        break
    table.write("\n" + flux + " " + observed)
    table.close()

我试图在 cygwin 中使用的命令和错误-

gnuplot plot table.dat

0.058 2
^
"table.dat", line 1: invalid command

先感谢您。我很感激你能提供的任何建议。

4

1 回答 1

4

你可能想要:

gnuplot --persist -e 'plot "table.dat" u 1:2'

使用您的命令,gnuplot 正在查找要在名为“plot”的文件中运行的命令,然后在名为“table.dat”的文件中运行。'table.dat' 没有要运行的命令,它有要绘制的数据。使用“-e”与将单引号中的内容放入临时文件(称为 temp.gp)然后执行gnuplot temp.gp. 这--persist使得情节保持在你的屏幕上(你会想要的,因为我怀疑你是否将它保存到文件中)。要了解如何将其保存到文件中,请在 gnuplot 中执行 :help set term和.help set outputset term

编辑

我对cygwin不太了解,所以我不知道默认终端是什么(或将启用哪些终端)。

有几件事要尝试:

gnuplot -e 'plot "table.dat" u 1:2; pause -1'  #this should leave your plot open until you hit return

将命令放在文件中

#tmp.gp
set term postscript enh color
set output "tmp.ps"
plot "table.dat" u 1:2

现在运行它:

gnuplot tmp.gp

然后使用您拥有的任何工具打开后记以查看后记——我经常使用gv,但我不知道 cygwin 上有什么。

gv tmp.ps &
于 2012-06-07T18:24:16.813 回答