我有一个使用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]
我不明白为什么我会犯这个错误。
谢谢:)
答案 0 :(得分: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的重要组成部分。