]> git.eshelyaron.com Git - emacs.git/commitdiff
(calc-graph-format-data,calc-graph-add-curve): Check for error forms.
authorJay Belanger <jay.p.belanger@gmail.com>
Fri, 3 Aug 2007 05:25:03 +0000 (05:25 +0000)
committerJay Belanger <jay.p.belanger@gmail.com>
Fri, 3 Aug 2007 05:25:03 +0000 (05:25 +0000)
(calc-graph-set-styles): Add option for error forms.

lisp/ChangeLog
lisp/calc/calc-graph.el

index 19014a996f9bbef477d3763b53eaab6372313888..2363853356cd5f1c07278acde52971c9b59caaf6 100644 (file)
@@ -1,3 +1,12 @@
+2007-08-03  Jay Belanger  <jay.p.belanger@gmail.com>
+
+       * calc/calc-ext.el (math-get-value,math-get-sdev)
+       (math-contains-sdev): New functions.
+
+       * calc/calc-graph.el (calc-graph-format-data)
+       (calc-graph-add-curve): Check for error forms.
+       (calc-graph-set-styles): Add option for error forms.
+
 2007-08-03  Miles Bader  <miles@gnu.org>
 
        * vc-hooks.el (vc-handled-backends): Change capitalization of VC
index 48bdecf59a6ce86cdf2313a414682f292e7837d5..a7e85d9fa859d9d7201436989057d95c651e9baa 100644 (file)
          0)
      (or (and (Math-num-integerp pstyle) (math-trunc pstyle))
          (if (eq (car-safe (calc-var-value (nth 2 ydata))) 'vec)
-             0 -1)))))
+             0 -1))
+     (math-contains-sdev-p (eval (nth 2 ydata))))))
 
 (defun calc-graph-lookup (thing)
   (if (and (eq (car-safe thing) 'var)
          calc-graph-numsteps (1- (* calc-graph-numsteps (1+ calc-graph-numsteps3))))))
 
 (defun calc-graph-format-data ()
+  (if (math-contains-sdev-p calc-graph-yp)
+      (let ((yp calc-graph-yp))
+        (setq calc-graph-yp (cons 'vec (mapcar 'math-get-value (cdr yp))))
+        (setq calc-graph-zp (cons 'vec (mapcar 'math-get-sdev (cdr yp))))))
   (while (<= (setq calc-graph-stepcount (1+ calc-graph-stepcount)) calc-graph-numsteps)
     (if calc-graph-xvec
        (setq calc-graph-xp (cdr calc-graph-xp)
@@ -1059,7 +1064,7 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
   (interactive "P")
   (calc-graph-set-styles t (and style (prefix-numeric-value style))))
 
-(defun calc-graph-set-styles (lines points)
+(defun calc-graph-set-styles (lines points &optional yerr)
   (calc-graph-init)
   (save-excursion
     (set-buffer calc-gnuplot-input)
@@ -1067,7 +1072,7 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
        (error "No data points have been set!"))
     (let ((base (point))
          (mode nil) (lstyle nil) (pstyle nil)
-         start end lenbl penbl)
+         start end lenbl penbl errform)
       (re-search-forward "[,\n]")
       (forward-char -1)
       (setq end (point) start end)
@@ -1087,29 +1092,48 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
                (setq pstyle (string-to-number
                              (buffer-substring (match-beginning 1)
                                                (match-end 1)))))))
-      (setq lenbl (or (equal mode "lines") (equal mode "linespoints"))
-           penbl (or (equal mode "points") (equal mode "linespoints")))
-      (if lines
-         (or (eq lines t)
-             (setq lstyle lines
-                   lenbl (>= lines 0)))
-       (setq lenbl (not lenbl)))
-      (if points
-         (or (eq points t)
-             (setq pstyle points
-                   penbl (>= points 0)))
-       (setq penbl (not penbl)))
-      (delete-region start end)
+      (unless yerr
+        (setq lenbl (or (equal mode "lines") 
+                        (equal mode "linespoints"))
+              penbl (or (equal mode "points") 
+                        (equal mode "linespoints")))
+        (if lines
+            (or (eq lines t)
+                (setq lstyle lines
+                      lenbl (>= lines 0)))
+          (setq lenbl (not lenbl)))
+        (if points
+            (or (eq points t)
+                (setq pstyle points
+                      penbl (>= points 0)))
+          (setq penbl (not penbl))))
+        (delete-region start end)
       (goto-char start)
-      (insert " with "
-             (if lenbl
-                 (if penbl "linespoints" "lines")
-               (if penbl "points" "dots")))
-      (if (and pstyle (> pstyle 0))
-         (insert " " (if (and lstyle (> lstyle 0)) (int-to-string lstyle) "1")
-                 " " (int-to-string pstyle))
-       (if (and lstyle (> lstyle 0))
-           (insert " " (int-to-string lstyle))))))
+      (setq errform
+            (condition-case nil
+                (math-contains-sdev-p
+                 (eval (intern 
+                        (concat "var-"
+                                (save-excursion
+                                  (re-search-backward ":\\(.*\\)\\}")
+                                  (match-string 1))))))
+              (error nil)))
+      (if yerr
+          (insert " with yerrorbars")
+        (insert " with "
+                (if (and errform
+                         (equal mode "dots")
+                         (eq lines t))
+                    "yerrorbars"
+                  (if lenbl
+                      (if penbl "linespoints" "lines")
+                    (if penbl "points" "dots"))))
+        (if (and pstyle (> pstyle 0))
+            (insert " " 
+                    (if (and lstyle (> lstyle 0)) (int-to-string lstyle) "1")
+                    " " (int-to-string pstyle))
+          (if (and lstyle (> lstyle 0))
+              (insert " " (int-to-string lstyle)))))))
   (calc-graph-view-commands))
 
 (defun calc-graph-zero-x (flag)