I have written a bash script that generates files containing data and saves them to a directory. I would like my script to also plot these files using xmgrace.
Initially I just need a command line or series of command lines that will create an xmgrace file, save it, choose the scales of the y and x axis, set the y axis to be logarithmic, label the x and y axis and title the graph.
I have tried the line to start with
xmgrace filename xaxis label "Label 1" yaxis label "Label 2" PRINT TO "filename.eps" DEVICE "EPS" OP "level2"
This plots the data but does not put the labels on it or save it and the terminal returns
Can't stat file xaxis
Can't stat file label
Can't stat file Label 1
...
...
Is there also a flag I can put in this command line so that xmgrace does not actually open the file, it just creates it and saves it. This would be much better when I use it in the Bash Script.
Thank you very much
p.s. I am only using xmgrace because it it the plotting tool I am most familiar with to use manually. I would welcome any suggestion of more appropriate tools for this task.
Yes, it is possible to call xmgrace/Grace without the GUI (using gracebat
), but the commands you have used must first be inside a script file.
Contents of file "script.bat":
xaxis label "Label 1"
yaxis label "Label 2"
DEVICE "EPS" OP "level2"
PRINT TO "plot.eps"
PRINT
Now, for a two-column data file "data.dat" you call a sister executable named gracebat
which is the same as xmgrace
but operates in batch mode (without the GUI):
gracebat -nosafe data.dat -batch script.bat
where
-batch <script>
tells grace to look for and execute a script file (does not tell grace to run in batch mode!).
-nosafe
overrides the default safe mode, which is supposed to stop file modifications. Without it you would see an error message (although in my case the plot file was still written).