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.xmg
a.dat
推奨事項:より複雑なフローティング機能を使用したい場合は、Xmgraceのコマンドラインインターフェイスが難しくなります。これとその他の質問これが表示されました。この場合、本質的にスクリプト可能なGNUPlotまたはMatplotlibをお勧めします。