Python Gnuplot:第0行:需要打印的函数

Python Gnuplot:第0行:需要打印的函数,python,gnuplot,Python,Gnuplot,我有一个用gnuplot生成图形的python脚本。但我有一个错误: gnuplot>绘图 ^ 第0行:需要打印的函数 g=Gnuplot.Gnuplot(persist=1) g.title('Read&Write Performance') g.xlabel('minutes') g.ylabel('MB/s') g('set term png') g('set out') g('set yrange [0:70]')

我有一个用gnuplot生成图形的python脚本。但我有一个错误:

gnuplot>绘图 ^ 第0行:需要打印的函数

    g=Gnuplot.Gnuplot(persist=1)
    g.title('Read&Write Performance')
    g.xlabel('minutes')
    g.ylabel('MB/s')
    g('set term png')
    g('set out')
    g('set yrange [0:70]')
    d1=Gnuplot.Data(self.time,self.list1,title="perfr", with_="line")
    d2=Gnuplot.Data(self.time,self.list2,title="perfw", with_="line")
    time.sleep(2)
    g.hardcopy('bench.png',terminal = 'png')
    g.reset()
self.list1=[12,15,17] self.list2=[43,48,49]

我不明白我为什么会犯这个错误


谢谢:)

在非常简短地查看源代码后,g.plot()似乎不会将绘图发送到窗口(例如x11),而是发送到当前配置为发送绘图的gnuplot的任何位置。所以,(我认为)最简单的解决办法是--


只要在发出
plot
命令时gnuplot py的内部不重置gnuplot脚本,这应该可以工作。我非常怀疑这种情况,因为
\uuu调用\uuu
方法似乎是API的重要组成部分。

你在说什么?我没怎么用过它,但打电话给时间。睡眠看起来有点可疑。有没有办法查看发送到gnuplot的代码?这样做可能更容易看出问题所在。而且,这个项目看起来已经很长时间没有更新了——可以想象,它与gnuplot的最新版本不兼容。您可能会发现它更易于使用。我已经阅读了time.sleep,它帮助gnuplot完全执行命令。看起来您实际上并没有将数据发送到任何地方。快速阅读
test.py
会让我觉得应该有一行代码,比如<代码>g.绘图(d1)。。。如果你想让他们一起出现,我不知道它是怎么工作的…@mgilson我不想要gnuplot windows。仅将图形另存为png文件。g、 plot()显示gnuplot窗口您是对的mgilson!简直太完美了。它很好用。非常感谢:)这个答案解决了我在将Bash脚本转换为OSX时遇到的一个问题,即我需要在terminal和output中设置terminal。我试图在终端中直接运行gnuplot的绘图,但无法理解为什么命令在这里不起作用
g('set terminal png')
g('set output "bench.png"')
g.plot(d1)  #d1 should not be in "bench.png"
#This might work to plot both datasets together ... g.plot(d1,d2)