* guile: some update for the output format

This commit is contained in:
djcb
2013-07-23 22:22:57 +03:00
parent b7324d5af6
commit b7219aaf82
3 changed files with 29 additions and 23 deletions

View File

@ -45,24 +45,29 @@ not found."
(if (access? progpath X_OK) ;; is
progpath
#f))))
2
(define* (mu:plot-histogram data title x-label y-label #:optional (text-only #f) (extra-gnuplot-opts '()))
"Plot DATA with TITLE, X-LABEL and X-LABEL. If TEXT-ONLY is true,
display using raw text, otherwise, use a graphical window. DATA is a
list of cons-pairs (X . Y)."
(define* (mu:plot-histogram data title x-label y-label output
#:optional (extra-gnuplot-opts '()))
"Plot DATA with TITLE, X-LABEL and X-LABEL using the gnuplot
program. DATA is a list of cons-pairs (X . Y). OUTPUT is a string
that determines the type of output that gnuplot produces, depending on
the system. Which options are available depends on the particulars for
the gnuplot installation, but typical examples would be \"dumb\" for
text-only display, \"wxterm\" to write to a graphical window, or
\"png\" to write a PNG-image to stdout. EXTRA-GNUPLOT-OPTS are any
additional options for gnuplot."
(if (not (find-program-in-path "gnuplot"))
(error "cannot find 'gnuplot' in path"))
(let ((datafile (export-pairs data))
(gnuplot (open-pipe "gnuplot -p" OPEN_WRITE)))
(display (string-append
"reset\n"
"set term " (if text-only "dumb" "wxt") "\n"
"set term " (or output "dumb") "\n"
"set title \"" title "\"\n"
"set xlabel \"" x-label "\"\n"
"set ylabel \"" y-label "\"\n"
"set boxwidth 0.9\n"
(string-join extra-gnuplot-opts "\n")
(string-join extra-gnuplot-opts "\n")
"plot \"" datafile "\" using 2:xticlabels(1) with boxes fs solid\n")
gnuplot)
(close-pipe gnuplot)))

View File

@ -34,23 +34,23 @@ Interpret argument-list ARGS (like command-line
arguments). Possible arguments are:
--help (show some help and exit)
--muhome (path to alternative mu home directory)
--textonly (don't show any graphical windows)
--output (a string describing the output, e.g. \"dumb\", \"png\" \"wxt\")
searchexpr (a search query)
then call FUNC with args SEARCHEXPR and TEXTONLY."
(setlocale LC_ALL "")
(let* ((optionspec '( (muhome (value #t))
(query (value #t))
(textonly (value #f))
(help (single-char #\h) (value #f))))
then call FUNC with args SEARCHEXPR and OUTPUT."
(setlocale LC_ALL "")
(let* ((optionspec '((muhome (value #t))
(query (value #t))
(output (value #f))
(help (single-char #\h) (value #f))))
(options (getopt-long args optionspec))
(query (option-ref options 'query #f))
(help (option-ref options 'help #f))
(textonly (option-ref options 'textonly #f))
(output (option-ref options 'output #f))
(muhome (option-ref options 'muhome #f))
(restargs (option-ref options '() #f)))
(if help (help-and-exit))
(mu:initialize muhome)
(func (or query "") textonly)))
(func (or query "") output)))
;; Local Variables:
;; mode: scheme