일괄 모드의 축 크기 조정

일괄 모드의 축 크기 조정

xmgrace의 Gracebat을 사용하여 다음 배치 스크립트를 사용하여 막대 차트를 생성하고 있습니다.

s0 line type 0
S0 SYMBOL COLOR 4
S0 SYMBOL FILL 1
s0 type BAR
## Bar fill. Only 1 (black) is available.
 S0 FILL WITH COLOR
 S0 FILL COLOR 3
## Outline width.
S0 SYMBOL LINEWIDTH 2
# options for image output
WORLD XMIN 0
WORLD YMIN 0
PAGE SIZE 800, 600

첫 번째 문제는 스크립트가 자동으로 X에서 간격을 0.5로 설정하는 경우가 있는데 저는 항상 1이 필요하다는 것입니다. 예는 다음과 같습니다.

여기에 이미지 설명을 입력하세요.

배치 파일의 일부 옵션을 사용하여 사용되지 않는 0.5 간격을 어떻게 제거할 수 있습니까?

두 번째 문제(X축에도 있음): 때로는 차트가 데이터 없이 2의 더 넓은 범위의 값을 포함하는 경우가 있습니다.

여기에 이미지 설명을 입력하세요.

초기 데이터 세트를 기반으로 XMAX를 자동으로 제한할 수 있습니까(그러나 다른 xvg 파일에 적용하므로 배치 스크립트에서 수동으로 설정하지 않음)?

답변1

배치 파일의 일부 옵션을 사용하여 사용되지 않는 0.5 간격을 어떻게 제거할 수 있습니까?

그리고 XAXIS TICK MAJOR 1.

초기 데이터 세트를 기반으로 XMAX를 자동으로 제한할 수 있나요?

이것문서설명하다

graphno AUTOSCALE TYPE SPEC
데이터의 최소값과 최대값을 사용하도록 AutoScaling 방식을 설정합니다.

따라서 누군가는 G0 AUTOSCALE TYPE SPEC이것이 완료될 것이라고 생각할 수도 있지만 적어도 Xmgrace의 안정 버전에서는 그렇지 않습니다.

또 다른 접근 방식은 프로그램(예를 들어)을 사용하여 데이터 파일에서 X축과 Y축의 최대값을 추출 awk하고 이를 사용하여 적절한 배치 명령을 생성하는 것입니다. 예를 들어 다음과 같이 저장합니다 batchplot.

awk '
  NR==1{
    max1=$1
    max2=$2
  }
  $1>max1{max1=$1}
  $2>max2{max2=$2}
  END{printf "WORLD XMAX %s\nWORLD YMAX %s\n",max1,max2 >> "a.xmg"}
' a.dat
xmgrace -nosafe -batch a.xmg a.dat

을 사용하여 실행 가능하게 만들고 및 를 배치 및 데이터 파일의 이름으로 chmod +x batchplot바꾼 다음 실행합니다. 배치에 X 및 Y축 제한을 추가한 다음 실행합니다.a.xmga.dat

권장 사항: 더 복잡한 플로팅 기능을 사용하려는 경우 Xmgrace의 명령줄 인터페이스가 어려울 것입니다. 이것과다른 질문이것이 표시되었습니다. 이 경우 본질적으로 스크립트가 가능한 GNUPlot 또는 Matplotlib를 권장합니다.

관련 정보