如何为gnuplot创建数据文件?

28
我正在尝试使用gnuplot制作图表。我指定了我的xrangeyrangelabels,但是当我输入以下命令时:

gnuplot> plot "data.txt" using 1:2 with lines

gnuplot告诉我:

warning: Skipping unreadable file "data.txt" No data in plot.

我不明白为什么我的数据文件无法读取。这是我的data.txt文件的样子:
X       Y  [I didn't enter X and Y into my text file]

10000   0.030
5000    0.02
1000    0.012

我知道我一定做错了什么——这是我第一次使用gnuplot。我尝试通过谷歌搜索如何制作正确的data.txt文件,但没有任何结果。

编辑:

我觉得在一个编程问答网站上问这个问题可能听起来很奇怪,但是一个包含数据的典型文本文件应该长什么样子呢?我不是计算机程序员,只是一个大学生,想为她的生物化学课程绘制一个图表。

8个回答

21

可能是因为文件不存在或者路径不正确,正如大多数人回答的那样。

或者,你只是写错了语法(如果你不知道应该是什么样的话,就无从得知了,对吧?尤其是在“帮助”中,它是错误的)。

对于 Windows 7 上的 gnuplot 4.6.0,终端类型设置为 windows:

确保你指定了文件的 完整路径 ,以免在错误的位置查找它(默认似乎是“文档”)。

确保你使用这个语法:

plot 'path\path\desireddatafile.txt'

不是

plot "< path\path\desireddatafile.txt>"

NOR

plot "path\path\desireddatafile.txt"

还要确保您的文件处于正确的格式,例如对于 .txt 文件格式 ANSI 格式,而不是 Unicode 等。


我特别喜欢你。谢谢。我一直在寻找向gnuplot传递路径的正确方法,以便让gnuplot找到我的文件的正确方法。 - DanBeale

14
plot "data.txt" using 1:2 with lines 

对我来说可行。你的数据文件实际上有空行吗?这将导致绘制出空图。你能看到没有数据的图形吗?例如绘制x*x。如果不能,则可能是因为你的终端设置不正确。


1
我在文本文件中输入的方式与我在帖子中的方式完全相同。我确实看到了一个图表——我绘制了一个sin(x)图表,只是为了确保gnuplot没有出现问题,结果显示正常。 - Miriam
好的,你的gnuplot能够生成图表。如果你的数据文件中有空行,你将得到一个空的图表。删除空行,你就可以得到你的图表了。 - David Nehme
1
尽管在上面的帖子中我添加了文本文件中包含的文本,但实际上我没有任何空格或任何行...它只是一个非常简单的文本文件,里面什么都没有,只有数字。 - Miriam
你用什么编辑器来创建文件?如果你正在运行Windows,你应该能够从命令行中键入type data.txt并直接查看数据。 - David Nehme
我正在使用一个带有Gnome3的文本编辑器,gedit。我想要发一张截图,但是对于新用户上传照片,论坛有一些限制。gnuplot能够读取LaTeX文件吗? - Miriam
显示剩余2条评论

7
按照以下方式创建您的数据文件:
# X      Y
10000.0 0.01
100000.0 0.05
1000000.0 0.45

并使用它绘图

$ gnuplot -p -e "plot 'filename.dat'"

这里有一个不错的教程:http://www.gnuplotting.org/introduction/plotting-data/

该教程介绍了如何绘制数据图表,对于IT技术人员来说非常有用。建议阅读并学习。

1
我曾经在尝试使用Windows 7版本中提供的“Plot->Data filename...”选项打开文件时遇到了同样的问题(顺便说一下,它在另一台安装了相同操作系统版本的计算机上正常运行)。
然后我尝试更改目录并保存“.plt”文件,但也没有成功。最后,我尝试按照此帖子队列中早期针对Linux所示的方式手动输入。
gnuplot > plot "./datafile.dat"

它成功了!


1

供将来参考,我在Linux下遇到了同样的问题。

"warning: Skipping unreadable file"

原因是我喜欢使用Tab键自动补全功能,在gnuplot中这会在结尾添加一个空格,但我并没有注意到。

gnuplot> plot "./datafile.txt "

0
只需转到cmd.exe快捷方式的属性,通过添加您放置所有'.txt'文件的文件名来更改“开始”位置。我遇到了同样的问题,我将整个文件名称作为'D:\photon'放在属性的“开始”位置上,它可以工作。请记住,您必须将所有文件放在该文件夹中,否则您必须为每个数据文件创建许多快捷方式。抱歉回复晚了。

0

这个错误通常意味着文件找不到。

你能从命令行看到这个文件吗?

  1. 尝试指定完整路径名。
  2. 检查行结束类型(使用0x0d)。
  3. 文件是否在另一个程序中打开?
  4. 你有读取权限吗?

我确实看到当我通过终端查看目录时,文件保存在该目录中。在运行gnuplot之前,我应该在终端中打开文件吗?还是它完全独立于此? - Miriam
他收到了消息“在"data.txt"中跳过无法读取的数据”,因此看起来gnuplot能够读取该文件。 - David Nehme

0

我遇到了完全相同的问题。我的问题是我还没有保存我正在输入的 .plt 文件。解决方法:我将 .plt 文件保存在与我尝试绘制的数据相同的目录中,然后它突然就可以工作了!如果它们在同一个目录中,您甚至不需要指定路径,只需输入文件名即可。

以下是我遇到的问题以及我如何解决它的详细信息。第一行显示了我们两个都遇到的问题。我在第二行保存了文件,第三行就可以工作了!

gnuplot> plot 'c:/Documents and Settings/User/Desktop/data.dat'
         warning: Skipping unreadable file c:/Documents and Settings/User/Desktop/data.dat
         No data in plot

gnuplot> save 'c:/Documents and Settings/User/Desktop/myfile.plt'

gnuplot> plot 'c:/Documents and Settings/User/Desktop/data.dat'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接