2012-04-09 2 views
1

나는 gnuplot으로 그래픽을 생성하는 파이썬 스크립트를 가지고있다.Gnuplot : 줄 0 : 예상되는 기능

의 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

[Gnuplot.py] (http://gnuplot-py.sourceforge.net/)에 대해 이야기하고 있습니까? 나는 그것을 많이 사용하지 않았다. 그러나'time.sleep '을 부르는 것은 용의자로 보인다. gnuplot으로 보내지는 코드를 보는 방법이 있습니까? 잘못 된 것이 더 쉬울 수도 있습니다. 또한,이 프로젝트가 오랜 시간 업데이트되지 않은 것처럼 보입니다. gnuplot의 최신 버전과 호환되지 않을 수도 있습니다. 대신 [matplotlib] (http://matplotlib.sourceforge.net/)을 사용하는 것이 더 쉽습니다. – James

+0

그 시간을 읽었습니다. 잠깐, gnuplot이 명령을 완전히 실행할 수 있도록 도와줍니다. – Matt

+0

실제로 어디서든 데이터를 전송하는 것처럼 보이지 않습니다. 'test.py'에 대한 빠른 열람은 당신이 거기에 줄을 써야한다고 생각하게 만듭니다.'g.plot (d1)'... 만약 당신이 그것들을 함께 나타나기를 원한다면, 나는 어떻게 그것은 작동합니다 ... – mgilson

답변

2

, 창 (예 : X11)에 줄거리를 전송하지 않는 g.plot()을 보이지만,의 gnuplot 현재 구성되어있는 곳으로 줄거리를 보낼 수 있습니다. 그래서 (내가 생각하는) 가장 쉬운 솔루션입니다 -이만큼의 gnuplot-PY의 내부가 plot 명령이 실행 될 때마다의 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) 

. __call__ 메소드가 API의 중요한 부분 인 것 같아서 이것이 사실 인 것은 의심 스럽습니다.

+0

맞습니다! 그것은 단순히 완벽합니다. 괜찮아. 고마워요 :) – Matt

+0

문제는 없습니다. 기꺼이 도와주세요. – mgilson

+0

이 답변은 내가 OSX로 Bash 스크립트를 변환 할 때 발생하는 문제 중 하나를 해결했습니다. 즉, 터미널에 터미널을 설정하고 출력해야합니다. 터미널에 직접 gnuplot의 플롯을 실행하려하지만 여기에서 명령이 작동하지 않는 이유를 이해할 수 없습니다. http://apple.stackexchange.com/q/178916/15504 –