Xmgrace
批處理模式下的軸縮放
我正在使用 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 文件,因此無需在批處理腳本中手動設置)?
如何通過批處理文件中的某些選項消除那些未使用的 0.5 間距?
與
XAXIS TICK MAJOR 1
.是否可以根據初始數據集自動限制 XMAX?
文件說_
graphno AUTOSCALE TYPE SPEC
設置自動縮放的方法以使用數據的最小值和最大值。
所以人們可能認為
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
使用, 替換a.xmg
和批處理和數據文件的名稱使其可執行a.dat
,然後執行它。它將 X 和 Y 軸限製附加到批處理,然後執行它。建議:如果您打算使用更複雜的繪圖功能,Xmgrace 的命令行界面將被證明是一種痛苦。這和你的其他問題已經表明了這一點。在這種情況下,我推薦 GNUPlot 或 Matplotlib,它們天生就是可編寫腳本的。