1

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

gnuplot> plot ^ line 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]

我不明白为什么我有这个错误。

谢谢 :)

4

1 回答 1

2

在对源代码进行了非常简短的查看之后,似乎 g.plot() 不会将绘图发送到窗口(例如 x11),而是发送到当前配置 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)  

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

于 2012-04-09T15:37:17.647 回答