バッチモードの軸のサイズ変更

バッチモードの軸のサイズ変更

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間隔をどのように削除できますか?

2番目の問題(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をお勧めします。

関連情報