2012-06-29 5 views
9

gnuplot의 자동 확장을 어떻게 제한 할 수 있습니까? 예를 들어 y-max의 예가 적어도 특정 값이고 고정 된 "제한"까지 자동 확장됩니까?자동 확대를위한 Gnuplot 최소 및 최대 경계

설명서를 보면, 축의 최소 또는 최대 끝을 수정하는 방법과 다른 쪽이 자동으로 조정되는 방법 만 볼 수 있습니다.

About autoscaling on PDF page 93

+0

자동 크기 조정이란 무엇을 의미합니까? ymax를 특정 값으로 설정 하시겠습니까? 아니면 최대 값이 특정 값을 갖도록 데이터의 크기를 조정 하시겠습니까? – andyras

+0

@andyras ymax의 예 : 최소값 (ymax 값)은 100이고 최대 값은 1000 일 수 있습니다. 가장 높은 데이터 값이 50이면 ymax는 100이됩니다. 값이 1000까지 자동으로 조정됩니다. 잘랐다. – varesa

답변

18

버전 4.6부터 gnuplot은 자동 확장을위한 상한 및 하한을 지정하는 새로운 구문을 제공합니다. 귀하의 경우를 들어 당신은 문서에서 인용

set xrange [0:100 < * < 1000] 

사용할 수 있습니다

오토 스케일링이 <lb> 하한 또는 <ub> 또는 둘 모두 바운드 상위에 따라 제한 될 수 있습니다 수행되고있는 범위를. 구문

{ <lb> < } * { < <ub> } 

0 < * < 200 

세트 <lb> = 0<ub> = 200이다.

구문은 최소값 또는 최대 값 set *range에 모두 적용될 수 있습니다.

xmin 오토 스케일 것이 아니라 긍정적를 유지 x 오토 스케일하기

set xrange [0<*:] 

사용하지만 10 ~ 50의 최소 범위를 유지 :

set xrange [*<10:50<*] 

자세한 내용은 문서에 대한 set xrange를 참조하십시오.

4

나는 그것이 가능하다고 생각하지 않습니다 중 하나는

set yrange [FIXED_MIN : FIXED_MAX] 
set yrange [  * : FIXED_MAX] 
set yrange [FIXED_MIN :   *] 
set yrange [  * :   ] 

각각 아니 - min-이나 된 Max, 또는 두 축 즉 :에 오토 스케일링이있다. 이 경우

+0

그래서 그것은 정말로 그 것처럼 보였습니다. 오히려 나는 그것을 발견 할 수 없었습니다. 데이터를 사용하여 수동으로 크기 조절을해야만한다. – varesa

4

, 당신은 데이터를 필터링하고 일반 자동 스케일링의 수행의 gnuplot 할 수있다 : 사람들이이 문제에 관심을 보인다 때문에

set yrange [*:*] 
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0) 
+0

그건 내가 한 일이다. (그러나 gnuplot 외부에서는). 죄송합니다. 코드를 잘못 읽었지 만 YMIN 아래의 모든 값을 버리지 않았습니까? 내가 원한 것을 약간 잘못 해석했을 수도 있습니다 (예 : Ymin = 0, Ymax = 100-1000). YMIN에서 배경색 (보이지 않음)을 가진 단일 데이터 지점을 추가하여이 문제를 해결했습니다. 그것은 나에게 내가 원하는 효과를 주었다. – varesa

+1

@varesa - gnuplot 4.6을 사용하고 있다면 위의 필터와 gnuplot 정의 변수 인'GPVAL_YMIN'과'GPVAL_XMIN'을 조합 할 수있는'stats' 명령이 있습니다. 조금 더 복잡해집니다. "보이지 않는"요점은 흥미로운 생각이지만 - 나는 그것을 좋아한다. – mgilson

+0

@mgilson Gnuplot 4.6은'xrange [0 : 100 <* <1000]'처럼 자동 스케일링의 상한과 하한에 대한 새로운 구문조차 추가했습니다. – Christoph

1

, 내가 같이이 해결 방법을 추가 할 것 답변 :

데이터의 시작 부분에 보이지 않는 마커를 삽입하여 자동 크기 조정에 필요한 최소값을 만들었습니다. 그것은 그것이 보이지 않을지라도 음모가 항상 그것을 "보여 주"도록 만듭니다.

가 그럼 난의 gnuplot의 외부 최대를 구현 내가의 gnuplot에 대한 데이터를 준비하는 데 사용한 파서 스크립트 (propably뿐만 아니라 그 안에 불가능했을 수 mgilson의 대답에서보세요).

실제로 스크립트에서 나는 모든 "클리핑 된"값을 가져 와서 y = 0에 추가하고 빨간색으로 만들었습니다. 그렇게하면 값에 비해 너무 커 그래프에 의미가있는 "경고"를 얻지 못합니다. (내 프로그램은 두 호스트 간의 ping을 모니터하고 5s + 대기 시간을 그래프로 표시하는 것은 의미가 없습니다.> 연결이 깨진 것으로 표시 함)

관련 문제