Lisp is somehow the opposite of shell programming.
Lisp is not meant to be started every time anew. You start Lisp once, then you re-program the running Lisp program by loading Lisp code, and then you control everything from the REPL.
It's like your first program: Start Lisp (once), load LTK (once), load your Lisp code (once), then load and plot data-files as many times as needed, but do not quit Lisp after every data-file, because the "load Lisp, load LTK, load code" overhead is not small.
I'm also wondering that LTK seems to lack the most important property of Lisp (and Tcl/Tk as well): interactive programming.
I'm currently investigating lisp2wish
, one of the predecessors of LTK, to write a specialized interactive Tcl/Tk canvas handler. Then afterwards I will try to integrate the code into LTK. I don't understand the LTK :serve-event input-handler machinery enough to modify LTK right now, I first must try out what's important and what not.