2012-03-08 1 views
3

logscale과 비슷한 방식으로 (f()은 대수 함수가 아닙니다) 스케일링에 사용하려는 f() 함수를 정의했습니다. set fscale y처럼 자동으로 처리하는 방법이 있습니까? y 축의 gnuplot에서 사용자 정의 크기 조정 (logscale y를 설정하는 것과 같습니다)

그렇지 않으면 나는 조정 기능 플롯하려고 :

plot 'data' using 1:(f($2)) 

을하지만 y 축에 대한 스케일은 분명히 잘못된 것입니다. 어떻게하면 y 축의 크기를 다시 조절할 수 있을까요?

모든 틱과 레이블을 수동으로 설정하지 않아도됩니다. (이 스크립트를 많은 다른 플롯에 사용하기 때문에). 데이터가 많이 변화하지 않으면 플롯이 분명히 될 수 있도록

답변

5

, 당신은

그냥 포인트의 해당 번호를 사용 set ytics ({"<label>"} <pos> {<level>} {,{"<label>"}...)하여 플롯 명령을 앞에 붙이는 반 자동으로 틱을 삽입 할 수 있습니다.

예 :

$ cat ex.data 
0 0 
1 3 
2 2.2 
5 5 
7 1.2 
9 4 
12 9 
15 5 

그래서 우리 Y 데이터 범위는 0 내지 9

$ gnuplot 

     G N U P L O T 
     Version 4.4 patchlevel 3 
     last modified March 2011 
     System: Linux 3.2.0-24-generic 

     Copyright (C) 1986-1993, 1998, 2004, 2007-2010 
     Thomas Williams, Colin Kelley and many others 

     gnuplot home:  http://www.gnuplot.info 
     faq, bugs, etc: type "help seeking-assistance" 
     immediate help: type "help" 
     plot window:  hit 'h' 

Terminal type set to 'wxt' 
gnuplot> f(x) = x**2 
gnuplot> set yrange [0:f(10)] 
gnuplot> set ytics ("0" f(0), "5" f(5), "7.5" f(7.5), "10" f(10)) 
gnuplot> plot "ex.data" u 1:(f($2)) w l 

결과에 :

example plot

+0

예, I는이 명령을 발견 매뉴얼. 불행히도 내 경우에는 범위 꽤 많이 다릅니다 :( – Grzenio

+0

이것은 나를 위해 완벽하게 작동합니다. 감사합니다! –

관련 문제