From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric S Fraga Subject: [bug] cannot extract just one column of table for use in gnuplot src block Date: Sun, 23 Mar 2014 15:44:27 +0000 Message-ID: <871txs2a3o.fsf@ucl.ac.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37954) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRkZr-0007tN-T5 for emacs-orgmode@gnu.org; Sun, 23 Mar 2014 11:44:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WRkZi-0003BR-OS for emacs-orgmode@gnu.org; Sun, 23 Mar 2014 11:44:47 -0400 Received: from mail-db3lp0076.outbound.protection.outlook.com ([213.199.154.76]:7479 helo=emea01-db3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRkZi-00039j-7t for emacs-orgmode@gnu.org; Sun, 23 Mar 2014 11:44:38 -0400 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Hello, with this simple example, --=-=-= Content-Type: text/x-org Content-Disposition: inline; filename="examplebug.org" #+TITLE: examplebug.org #+AUTHOR: Eric S Fraga * table references #+tblname: mytable | | A | B | C | D | E | F | G | H | I | Total | |---+---+---+---+---+---+---+---+---+---+-------| | 1 | 1 | 1 | | | 0 | | | 1 | | 3 | | 2 | 1 | | | | 0 | | | 1 | | 2 | | 3 | | | 2 | 1 | 0 | | | 1 | | 4 | | 4 | | | 2 | 1 | | | | 1 | | 4 | | 5 | | | 2 | | | | | | | 2 | | 6 | | | | | | 1 | | | | 1 | | 7 | | | | | | | 0 | | | 0 | | 8 | | | | | | | | | 2 | 2 | |---+---+---+---+---+---+---+---+---+---+-------| #+TBLFM: $1=1+@-1::$11=vsum($2..$10) #+begin_src gnuplot :var data=mytable[1:-1,10] :file histogram.pdf set xrange [-0.5:25.5] set yrange [0:4.2] plot data with histograms notitle #+end_src --=-=-= Content-Type: text/plain where I am trying to plot out the last column using a histogram plot in gnuplot, org fails with an error: Debugger entered--Lisp error: (wrong-type-argument sequencep 3) where the last function invoked was "orgtbl-format-line(3)". The trace is attached. This is with org up to date as of a few minutes ago. The trace shows that the column has been extracted exactly as I wish. However, it would appear that the function may expect a sequence and not just a single element? If I try to extract more than just one column, everything is fine (although obviously the gnuplot directives need to change...). thanks, eric -- : Eric S Fraga (0xFFFCF67D), Emacs 24.4.50.2, Org release_8.2.5h-831-gcb9172-git --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename="trace.txt" Content-Transfer-Encoding: quoted-printable Debugger entered--Lisp error: (wrong-type-argument sequencep 3) mapcar((lambda (f) (setq i (1+ i)) (let* ((efmt (orgtbl-get-fmt *orgtbl-e= fmt* i)) (f (if (and efmt (string-match orgtbl-exp-regexp f)) (orgtbl-apply= -fmt efmt (match-string 1 f) (match-string 2 f)) f))) (orgtbl-apply-fmt (or= (orgtbl-get-fmt *orgtbl-fmt* i) *orgtbl-default-fmt*) f))) 3) (let* ((i 0) (line (mapcar (function (lambda (f) (setq i (1+ i)) (let* (.= .. ...) (orgtbl-apply-fmt ... f)))) line))) (setq *orgtbl-rtn* (cons (if *o= rgtbl-lfmt* (apply (function orgtbl-apply-fmt) *orgtbl-lfmt* line) (concat = (orgtbl-eval-str *orgtbl-lstart*) (mapconcat (quote identity) line *orgtbl-= sep*) (orgtbl-eval-str *orgtbl-lend*))) *orgtbl-rtn*))) (if (eq line (quote hline)) (if *orgtbl-hline* (setq *orgtbl-rtn* (cons *= orgtbl-hline* *orgtbl-rtn*))) (let* ((i 0) (line (mapcar (function (lambda = (f) (setq i ...) (let* ... ...))) line))) (setq *orgtbl-rtn* (cons (if *org= tbl-lfmt* (apply (function orgtbl-apply-fmt) *orgtbl-lfmt* line) (concat (o= rgtbl-eval-str *orgtbl-lstart*) (mapconcat (quote identity) line *orgtbl-se= p*) (orgtbl-eval-str *orgtbl-lend*))) *orgtbl-rtn*)))) orgtbl-format-line(3) (if prevline (orgtbl-format-line prevline)) (while (not (eq (car *orgtbl-table*) section-stopper)) (if prevline (orgt= bl-format-line prevline)) (setq prevline (car-safe (prog1 *orgtbl-table* (s= etq *orgtbl-table* (cdr *orgtbl-table*)))))) (progn (while (not (eq (car *orgtbl-table*) section-stopper)) (if prevlin= e (orgtbl-format-line prevline)) (setq prevline (car-safe (prog1 *orgtbl-ta= ble* (setq *orgtbl-table* (cdr *orgtbl-table*)))))) (if prevline (let ((*or= gtbl-lstart* *orgtbl-llstart*) (*orgtbl-lend* *orgtbl-llend*) (*orgtbl-lfmt= * *orgtbl-llfmt*)) (orgtbl-format-line prevline)))) (let (prevline) (progn (while (not (eq (car *orgtbl-table*) section-stopp= er)) (if prevline (orgtbl-format-line prevline)) (setq prevline (car-safe (= prog1 *orgtbl-table* (setq *orgtbl-table* (cdr *orgtbl-table*)))))) (if pre= vline (let ((*orgtbl-lstart* *orgtbl-llstart*) (*orgtbl-lend* *orgtbl-llend= *) (*orgtbl-lfmt* *orgtbl-llfmt*)) (orgtbl-format-line prevline))))) orgtbl-format-section(nil) (let* ((splicep (plist-get params :splice)) (hline (plist-get params :hli= ne)) (skipheadrule (plist-get params :skipheadrule)) (remove-nil-linesp (pl= ist-get params :remove-nil-lines)) (remove-newlines (plist-get params :remo= ve-newlines)) (*orgtbl-hline* hline) (*orgtbl-table* table) (*orgtbl-sep* (= plist-get params :sep)) (*orgtbl-efmt* (plist-get params :efmt)) (*orgtbl-l= start* (plist-get params :lstart)) (*orgtbl-llstart* (or (plist-get params = :llstart) *orgtbl-lstart*)) (*orgtbl-lend* (plist-get params :lend)) (*orgt= bl-llend* (or (plist-get params :llend) *orgtbl-lend*)) (*orgtbl-lfmt* (pli= st-get params :lfmt)) (*orgtbl-llfmt* (or (plist-get params :llfmt) *orgtbl= -lfmt*)) (*orgtbl-fmt* (plist-get params :fmt)) *orgtbl-rtn*) (if backend (= progn (setq *orgtbl-table* (mapcar (function (lambda (r) (if ... ... r))) *= orgtbl-table*)))) (if splicep nil (if (plist-member params :tstart) (progn = (let ((tstart (orgtbl-eval-str ...))) (if tstart (setq *orgtbl-rtn* (cons t= start *orgtbl-rtn*))))))) (if (and (not splicep) (or (consp (car *orgtbl-ta= ble*)) (consp (nth 1 *orgtbl-table*))) (memq (quote hline) (cdr *orgtbl-tab= le*))) (progn (if (eq (quote hline) (car *orgtbl-table*)) (progn (and hline= (setq *orgtbl-rtn* (cons hline *orgtbl-rtn*))) (car-safe (prog1 *orgtbl-ta= ble* (setq *orgtbl-table* ...))))) (let* ((*orgtbl-lstart* (or (plist-get p= arams :hlstart) *orgtbl-lstart*)) (*orgtbl-llstart* (or (plist-get params := hllstart) *orgtbl-llstart*)) (*orgtbl-lend* (or (plist-get params :hlend) *= orgtbl-lend*)) (*orgtbl-llend* (or (plist-get params :hllend) (plist-get pa= rams :hlend) *orgtbl-llend*)) (*orgtbl-lfmt* (or (plist-get params :hlfmt) = *orgtbl-lfmt*)) (*orgtbl-llfmt* (or (plist-get params :hllfmt) (plist-get p= arams :hlfmt) *orgtbl-llfmt*)) (*orgtbl-sep* (or (plist-get params :hlsep) = *orgtbl-sep*)) (*orgtbl-fmt* (or (plist-get params :hfmt) *orgtbl-fmt*))) (= orgtbl-format-section (quote hline))) (if (and hline (not skipheadrule)) (s= etq *orgtbl-rtn* (cons hline *orgtbl-rtn*))) (car-safe (prog1 *orgtbl-table= * (setq *orgtbl-table* (cdr *orgtbl-table*)))))) (orgtbl-format-section nil= ) (if splicep nil (if (plist-member params :tend) (progn (let ((tend (orgtb= l-eval-str ...))) (if tend (setq *orgtbl-rtn* (cons tend *orgtbl-rtn*))))))= ) (mapconcat (if remove-newlines (function (lambda (tend) (replace-regexp-i= n-string "[\n=0D \f]" "\\\\n" tend))) (quote identity)) (nreverse (if remov= e-nil-linesp (remq nil *orgtbl-rtn*) *orgtbl-rtn*)) "\n")) orgtbl-to-generic((3 2 4 4 2 1 0 2) (:sep " " :fmt org-babel-gnuplot-quot= e-tsv-field (:comments . "") (:shebang . "") (:cache . "no") (:padline . ""= ) (:noweb . "no") (:tangle . "no") (:exports . "results") (:results . "file= replace") (:var data 3 2 4 4 2 1 0 2) (:hlines . "no") (:session) (:file .= "histogram.pdf") (:result-type . value) (:result-params "file" "replace") = (:rowname-names) (:colname-names))) (insert (orgtbl-to-generic table (org-combine-plists (quote (:sep " " :fm= t org-babel-gnuplot-quote-tsv-field)) params))) (save-current-buffer (set-buffer temp-buffer) (make-local-variable (quote= org-babel-gnuplot-timestamp-fmt)) (setq org-babel-gnuplot-timestamp-fmt (o= r (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")) (insert (orgtbl-to-gene= ric table (org-combine-plists (quote (:sep " " :fmt org-babel-gnuplot-quote= -tsv-field)) params)))) (prog1 (save-current-buffer (set-buffer temp-buffer) (make-local-variable= (quote org-babel-gnuplot-timestamp-fmt)) (setq org-babel-gnuplot-timestamp= -fmt (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")) (insert (orgtbl-= to-generic table (org-combine-plists (quote (:sep " " :fmt org-babel-gnuplo= t-quote-tsv-field)) params)))) (save-current-buffer (set-buffer temp-buffer= ) (write-region nil nil temp-file nil 0))) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (mak= e-local-variable (quote org-babel-gnuplot-timestamp-fmt)) (setq org-babel-g= nuplot-timestamp-fmt (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")) = (insert (orgtbl-to-generic table (org-combine-plists (quote (:sep " " :fmt = org-babel-gnuplot-quote-tsv-field)) params)))) (save-current-buffer (set-bu= ffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-nam= e temp-buffer) (kill-buffer temp-buffer))) (let ((temp-file data-file) (temp-buffer (get-buffer-create (generate-new= -buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer= (set-buffer temp-buffer) (make-local-variable (quote org-babel-gnuplot-tim= estamp-fmt)) (setq org-babel-gnuplot-timestamp-fmt (or (plist-get params :t= imefmt) "%Y-%m-%d-%H:%M:%S")) (insert (orgtbl-to-generic table (org-combine= -plists (quote ...) params)))) (save-current-buffer (set-buffer temp-buffer= ) (write-region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (= kill-buffer temp-buffer)))) org-babel-gnuplot-table-to-data((3 2 4 4 2 1 0 2) "/tmp/babel-31898wPP/gn= uplot-31898Kkb" ((:comments . "") (:shebang . "") (:cache . "no") (:padline= . "") (:noweb . "no") (:tangle . "no") (:exports . "results") (:results . = "file replace") (:var data 3 2 4 4 2 1 0 2) (:hlines . "no") (:session) (:f= ile . "histogram.pdf") (:result-type . value) (:result-params "file" "repla= ce") (:rowname-names) (:colname-names))) (if (listp (cdr pair)) (org-babel-gnuplot-table-to-data (cdr pair) (org-b= abel-temp-file "gnuplot-") params) (cdr pair)) (cons (car pair) (if (listp (cdr pair)) (org-babel-gnuplot-table-to-data = (cdr pair) (org-babel-temp-file "gnuplot-") params) (cdr pair))) (lambda (pair) (cons (car pair) (if (listp (cdr pair)) (org-babel-gnuplot= -table-to-data (cdr pair) (org-babel-temp-file "gnuplot-") params) (cdr pai= r))))((data 3 2 4 4 2 1 0 2)) mapcar((lambda (pair) (cons (car pair) (if (listp (cdr pair)) (org-babel-= gnuplot-table-to-data (cdr pair) (org-babel-temp-file "gnuplot-") params) (= cdr pair)))) ((data 3 2 4 4 2 1 0 2))) (let ((*org-babel-gnuplot-missing* (cdr (assoc :missing params)))) (mapca= r (function (lambda (pair) (cons (car pair) (if (listp (cdr pair)) (org-bab= el-gnuplot-table-to-data (cdr pair) (org-babel-temp-file "gnuplot-") params= ) (cdr pair))))) (mapcar (function cdr) (org-babel-get-header params :var))= )) org-babel-gnuplot-process-vars(((:comments . "") (:shebang . "") (:cache = . "no") (:padline . "") (:noweb . "no") (:tangle . "no") (:exports . "resul= ts") (:results . "file replace") (:var data 3 2 4 4 2 1 0 2) (:hlines . "no= ") (:session) (:file . "histogram.pdf") (:result-type . value) (:result-par= ams "file" "replace") (:rowname-names) (:colname-names))) (let* ((vars (org-babel-gnuplot-process-vars params)) (out-file (cdr (ass= oc :file params))) (prologue (cdr (assoc :prologue params))) (epilogue (cdr= (assoc :epilogue params))) (term (or (cdr (assoc :term params)) (if out-fi= le (progn (let (...) (or ... ext)))))) (cmdline (cdr (assoc :cmdline params= ))) (title (cdr (assoc :title params))) (lines (cdr (assoc :line params))) = (sets (cdr (assoc :set params))) (x-labels (cdr (assoc :xlabels params))) (= y-labels (cdr (assoc :ylabels params))) (timefmt (cdr (assoc :timefmt param= s))) (time-ind (or (cdr (assoc :timeind params)) (if timefmt (progn 1)))) (= add-to-body (function (lambda (text) (setq body (concat text "\n" body)))))= output) (if title (progn (funcall add-to-body (format "set title '%s'" tit= le)))) (if lines (progn (mapc (function (lambda (el) (funcall add-to-body e= l))) lines))) (if sets (progn (mapc (function (lambda (el) (funcall add-to-= body (format "set %s" el)))) sets))) (if x-labels (progn (funcall add-to-bo= dy (format "set xtics (%s)" (mapconcat (function (lambda ... ...)) x-labels= ", "))))) (if y-labels (progn (funcall add-to-body (format "set ytics (%s)= " (mapconcat (function (lambda ... ...)) y-labels ", "))))) (if time-ind (p= rogn (funcall add-to-body "set xdata time") (funcall add-to-body (concat "s= et timefmt \"" (or timefmt "%Y-%m-%d-%H:%M:%S") "\"")))) (if out-file (prog= n (funcall add-to-body (format "set output \"%s\"" out-file)) (setq body (c= oncat body "\nset output\n")))) (if term (progn (funcall add-to-body (forma= t "set term %s" term)))) (funcall add-to-body (mapconcat (function identity= ) (org-babel-variable-assignments:gnuplot params) "\n")) (mapc (function (l= ambda (pair) (setq body (replace-regexp-in-string (format "\\$%s" (car pair= )) (cdr pair) body)))) vars) (if prologue (progn (funcall add-to-body prolo= gue))) (if epilogue (progn (setq body (concat body "\n" epilogue))))) (progn (let* ((vars (org-babel-gnuplot-process-vars params)) (out-file (c= dr (assoc :file params))) (prologue (cdr (assoc :prologue params))) (epilog= ue (cdr (assoc :epilogue params))) (term (or (cdr (assoc :term params)) (if= out-file (progn (let ... ...))))) (cmdline (cdr (assoc :cmdline params))) = (title (cdr (assoc :title params))) (lines (cdr (assoc :line params))) (set= s (cdr (assoc :set params))) (x-labels (cdr (assoc :xlabels params))) (y-la= bels (cdr (assoc :ylabels params))) (timefmt (cdr (assoc :timefmt params)))= (time-ind (or (cdr (assoc :timeind params)) (if timefmt (progn 1)))) (add-= to-body (function (lambda (text) (setq body (concat text "\n" body))))) out= put) (if title (progn (funcall add-to-body (format "set title '%s'" title))= )) (if lines (progn (mapc (function (lambda (el) (funcall add-to-body el)))= lines))) (if sets (progn (mapc (function (lambda (el) (funcall add-to-body= ...))) sets))) (if x-labels (progn (funcall add-to-body (format "set xtics= (%s)" (mapconcat (function ...) x-labels ", "))))) (if y-labels (progn (fu= ncall add-to-body (format "set ytics (%s)" (mapconcat (function ...) y-labe= ls ", "))))) (if time-ind (progn (funcall add-to-body "set xdata time") (fu= ncall add-to-body (concat "set timefmt \"" (or timefmt "%Y-%m-%d-%H:%M:%S")= "\"")))) (if out-file (progn (funcall add-to-body (format "set output \"%s= \"" out-file)) (setq body (concat body "\nset output\n")))) (if term (progn= (funcall add-to-body (format "set term %s" term)))) (funcall add-to-body (= mapconcat (function identity) (org-babel-variable-assignments:gnuplot param= s) "\n")) (mapc (function (lambda (pair) (setq body (replace-regexp-in-stri= ng (format "\\$%s" ...) (cdr pair) body)))) vars) (if prologue (progn (func= all add-to-body prologue))) (if epilogue (progn (setq body (concat body "\n= " epilogue))))) body) (unwind-protect (progn (let* ((vars (org-babel-gnuplot-process-vars param= s)) (out-file (cdr (assoc :file params))) (prologue (cdr (assoc :prologue p= arams))) (epilogue (cdr (assoc :epilogue params))) (term (or (cdr (assoc :t= erm params)) (if out-file (progn ...)))) (cmdline (cdr (assoc :cmdline para= ms))) (title (cdr (assoc :title params))) (lines (cdr (assoc :line params))= ) (sets (cdr (assoc :set params))) (x-labels (cdr (assoc :xlabels params)))= (y-labels (cdr (assoc :ylabels params))) (timefmt (cdr (assoc :timefmt par= ams))) (time-ind (or (cdr (assoc :timeind params)) (if timefmt (progn 1))))= (add-to-body (function (lambda (text) (setq body ...)))) output) (if title= (progn (funcall add-to-body (format "set title '%s'" title)))) (if lines (= progn (mapc (function (lambda ... ...)) lines))) (if sets (progn (mapc (fun= ction (lambda ... ...)) sets))) (if x-labels (progn (funcall add-to-body (f= ormat "set xtics (%s)" (mapconcat ... x-labels ", "))))) (if y-labels (prog= n (funcall add-to-body (format "set ytics (%s)" (mapconcat ... y-labels ", = "))))) (if time-ind (progn (funcall add-to-body "set xdata time") (funcall = add-to-body (concat "set timefmt \"" (or timefmt "%Y-%m-%d-%H:%M:%S") "\"")= ))) (if out-file (progn (funcall add-to-body (format "set output \"%s\"" ou= t-file)) (setq body (concat body "\nset output\n")))) (if term (progn (func= all add-to-body (format "set term %s" term)))) (funcall add-to-body (mapcon= cat (function identity) (org-babel-variable-assignments:gnuplot params) "\n= ")) (mapc (function (lambda (pair) (setq body (replace-regexp-in-string ...= ... body)))) vars) (if prologue (progn (funcall add-to-body prologue))) (i= f epilogue (progn (setq body (concat body "\n" epilogue))))) body) (set-win= dow-configuration wconfig)) (let ((wconfig (current-window-configuration))) (unwind-protect (progn (l= et* ((vars (org-babel-gnuplot-process-vars params)) (out-file (cdr (assoc := file params))) (prologue (cdr (assoc :prologue params))) (epilogue (cdr (as= soc :epilogue params))) (term (or (cdr ...) (if out-file ...))) (cmdline (c= dr (assoc :cmdline params))) (title (cdr (assoc :title params))) (lines (cd= r (assoc :line params))) (sets (cdr (assoc :set params))) (x-labels (cdr (a= ssoc :xlabels params))) (y-labels (cdr (assoc :ylabels params))) (timefmt (= cdr (assoc :timefmt params))) (time-ind (or (cdr ...) (if timefmt ...))) (a= dd-to-body (function (lambda ... ...))) output) (if title (progn (funcall a= dd-to-body (format "set title '%s'" title)))) (if lines (progn (mapc (funct= ion ...) lines))) (if sets (progn (mapc (function ...) sets))) (if x-labels= (progn (funcall add-to-body (format "set xtics (%s)" ...)))) (if y-labels = (progn (funcall add-to-body (format "set ytics (%s)" ...)))) (if time-ind (= progn (funcall add-to-body "set xdata time") (funcall add-to-body (concat "= set timefmt \"" ... "\"")))) (if out-file (progn (funcall add-to-body (form= at "set output \"%s\"" out-file)) (setq body (concat body "\nset output\n")= ))) (if term (progn (funcall add-to-body (format "set term %s" term)))) (fu= ncall add-to-body (mapconcat (function identity) (org-babel-variable-assign= ments:gnuplot params) "\n")) (mapc (function (lambda (pair) (setq body ...)= )) vars) (if prologue (progn (funcall add-to-body prologue))) (if epilogue = (progn (setq body (concat body "\n" epilogue))))) body) (set-window-configu= ration wconfig))) org-babel-expand-body:gnuplot("set xrange [-0.5:25.5]\nset yrange [0:4.2]= \nplot data with histograms notitle" ((:comments . "") (:shebang . "") (:ca= che . "no") (:padline . "") (:noweb . "no") (:tangle . "no") (:exports . "r= esults") (:results . "file replace") (:var data 3 2 4 4 2 1 0 2) (:hlines .= "no") (:session) (:file . "histogram.pdf") (:result-type . value) (:result= -params "file" "replace") (:rowname-names) (:colname-names))) (let ((session (cdr (assoc :session params))) (result-type (cdr (assoc :r= esults params))) (out-file (cdr (assoc :file params))) (body (org-babel-exp= and-body:gnuplot body params)) output) (let ((wconfig (current-window-confi= guration))) (unwind-protect (progn (if (string=3D session "none") (let ((sc= ript-file ...)) (let (... ...) (unwind-protect ... ...)) (message "gnuplot = \"%s\"" script-file) (setq output (shell-command-to-string ...)) (message o= utput)) (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buff= er) (unwind-protect ... ...)))) (if (member "output" (split-string result-t= ype)) output nil)) (set-window-configuration wconfig)))) org-babel-execute:gnuplot("set xrange [-0.5:25.5]\nset yrange [0:4.2]\npl= ot data with histograms notitle" ((:comments . "") (:shebang . "") (:cache = . "no") (:padline . "") (:noweb . "no") (:tangle . "no") (:exports . "resul= ts") (:results . "file replace") (:var data 3 2 4 4 2 1 0 2) (:hlines . "no= ") (:session) (:file . "histogram.pdf") (:result-type . value) (:result-par= ams "file" "replace") (:rowname-names) (:colname-names))) --=-=-=--