2014-03-27 4 views
1

GNUPlot을 사용하여 간단한 그래프를 그렸지만 출력이 예상 한 것과 다릅니다.예기치 않은 출력 GNUPlot

set title 'cost function vs clusters' 
set xlabel '#clusters' 
set ylabel 'cost function' 
set terminal postscript 
set output '| ps2pdf - output.pdf' 
plot filename using 1:2 title "x" with linesp 

데이터가있는 I가 데이터를하려하고 있습니다 :
여기 내 스크립트 내가 포인트 합류 할
enter image description here

: 여기

13 0.004945370902817711 
8 0.06739505462909719 
2 0.28378378378378377 
17 0.004657849338700402 
5 0.015181138585393904 
20 0.0018401380103507763 

그리고 나의 OUPUT입니다 x 순차적으로.
어떻게이 작업을 수행 할 수 있습니까?

+1

당신은 또한 데이터를 보내 주시기 바랍니다 수 있을까? 거기에 몇 가지 단점이 있습니다. gnuplot 버전과 OS는 중요한 정보입니다. 파일 이름 외에 따옴표가 있어야합니다. 어쨌든 AFAIK gnuplot은 데이터를 정렬하지 않지만,이를 수행하기 위해 스크립트를 사용할 수 있습니다. uniix에서 파일 이름을 " bibi

+0

정렬 후에도 동일한 결과를 보여주는 인수를 통해 파일 이름을 보냅니다. gnuplot 4.6 patchlevel 3 리눅스 13.10 – neel

+0

저에게는 이상한 일 이죠. 왜냐하면 sort -n은 꽤 잘 작동하기 때문입니다. 문제는 "인수를 통해 파일 이름 보내기"일 수 있습니다. 우리가 테스트 할 수 있도록 완전한 스크립트를 제공 할 수 있습니까? – bibi

답변

2

표시 한 데이터의 경우 smooth unique을 사용할 수 있습니다. 이렇게하면 데이터가 정렬되고 동일한 x 값이 평균 y 값을 갖는 단일 포인트로 바뀝니다.

set title 'cost function vs clusters' 
set xlabel '#clusters' 
set ylabel 'cost function' 
set terminal pdfcairo 
set output 'output.pdf' 
plot filename using 1:2 smooth unique title "x" with lp 

을 그리고 gnuplot -e 'filename="aboveFile"' plot.gpi로 전화 : 당신이 확신 할 수 있다면, 당신은 동일한 두 x 값이 결코거야, 당신은이를 사용할 수 있습니다.

sort를 사용하여 다른 변종은 잘 작동 :

plot '< sort -n '.filename using 1:2 title "x" with lp