From 22717d0750e2c001003b45f1d4834571f21287ef Mon Sep 17 00:00:00 2001 From: TEC Date: Wed, 23 Dec 2020 14:13:24 +0800 Subject: [PATCH] org-plot.el: fix compiler warnings * (org--plot/values-stats): Replace `log10' with `log'. (org--plot/nice-frequency-pick): Replace obsolete `case' with `pcase`. (org--plot/radar): Replace `s-join' with `mapconcat', removing the implicit dependency on s.el. (org-plot/gnuplot-script): Remove unused let bindings. (org-plot/gnuplot-script): Replace free variable reference with expression only using given variables. --- lisp/org-plot.el | 115 +++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 60 deletions(-) diff --git a/lisp/org-plot.el b/lisp/org-plot.el index 4aa8276..1c7ee43 100644 --- a/lisp/org-plot.el +++ b/lisp/org-plot.el @@ -196,7 +196,7 @@ values, namely regarding the range." (maximum (or hard-max (apply #'max nums))) (range (- maximum minimum)) (rangeOrder (if (= range 0) 0 - (ceiling (- 1 (log10 range))))) + (ceiling (- 1 (log range 10))))) (range-factor (expt 10 rangeOrder)) (nice-min (if (= range 0) (car nums) (/ (float (floor (* minimum range-factor))) range-factor))) @@ -210,9 +210,9 @@ values, namely regarding the range." "From a the values in a TABLE of data, attempt to guess an appropriate number of ticks." (let* ((row-data (mapcar (lambda (row) (org--plot/values-stats - (mapcar #'string-to-number (cdr row)) - hard-min - hard-max)) table)) + (mapcar #'string-to-number (cdr row)) + hard-min + hard-max)) table)) (row-normalised-ranges (mapcar (lambda (r-data) (let ((val (round (* (plist-get r-data :range-factor) @@ -229,34 +229,34 @@ values, namely regarding the range." (defun org--plot/nice-frequency-pick (frequencies) "From a list of frequences, try to sensibly pick a sample of the most frequent." ;; TODO this mosly works decently, but counld do with some tweaking to work more consistently. - (case (length frequencies) - (1 (list (car (nth 0 frequencies)))) - (2 (if (<= 3 (/ (cdr (nth 0 frequencies)) - (cdr (nth 1 frequencies)))) - (make-list 2 - (car (nth 0 frequencies))) - (list (car (nth 0 frequencies)) - (car (nth 1 frequencies))))) - (t - (let* ((total-count (apply #'+ (mapcar #'cdr frequencies))) - (n-freq (mapcar (lambda (freq) `(,(car freq) . ,(/ (float (cdr freq)) total-count))) frequencies)) - (f-pick (list (car (car n-freq)))) - (1-2-ratio (/ (cdr (nth 0 n-freq)) - (cdr (nth 1 n-freq)))) - (2-3-ratio (/ (cdr (nth 1 n-freq)) - (cdr (nth 2 n-freq)))) - (1-3-ratio (* 1-2-ratio 2-3-ratio)) - (1-val (car (nth 0 n-freq))) - (2-val (car (nth 1 n-freq))) - (3-val (car (nth 2 n-freq)))) - (when (> 1-2-ratio 4) (push 1-val f-pick)) - (when (and (< 1-2-ratio 2-val) - (< (* (apply #'* f-pick) 2-val) 30)) - (push 2-val f-pick)) - (when (and (< 1-3-ratio 3-val) - (< (* (apply #'* f-pick) 3-val) 30)) - (push 3-val f-pick)) - f-pick)))) + (pcase (length frequencies) + (1 (list (car (nth 0 frequencies)))) + (2 (if (<= 3 (/ (cdr (nth 0 frequencies)) + (cdr (nth 1 frequencies)))) + (make-list 2 + (car (nth 0 frequencies))) + (list (car (nth 0 frequencies)) + (car (nth 1 frequencies))))) + (_ + (let* ((total-count (apply #'+ (mapcar #'cdr frequencies))) + (n-freq (mapcar (lambda (freq) `(,(car freq) . ,(/ (float (cdr freq)) total-count))) frequencies)) + (f-pick (list (car (car n-freq)))) + (1-2-ratio (/ (cdr (nth 0 n-freq)) + (cdr (nth 1 n-freq)))) + (2-3-ratio (/ (cdr (nth 1 n-freq)) + (cdr (nth 2 n-freq)))) + (1-3-ratio (* 1-2-ratio 2-3-ratio)) + (1-val (car (nth 0 n-freq))) + (2-val (car (nth 1 n-freq))) + (3-val (car (nth 2 n-freq)))) + (when (> 1-2-ratio 4) (push 1-val f-pick)) + (when (and (< 1-2-ratio 2-val) + (< (* (apply #'* f-pick) 2-val) 30)) + (push 2-val f-pick)) + (when (and (< 1-3-ratio 3-val) + (< (* (apply #'* f-pick) 3-val) 30)) + (push 3-val f-pick)) + f-pick)))) (defun org--plot/merge-alists (function default alist1 alist2 &rest alists) "Using FUNCTION, combine the elements of all given ALISTS. When an element is @@ -473,34 +473,34 @@ EOD (defun org--plot/radar (table params) (let* ((data - (concat "\"" (s-join "\" \"" (plist-get params :labels)) "\"" + (concat "\"" (mapconcat #'identity (plist-get params :labels) "\" \"") "\"" "\n" - (s-join "\n" - (mapcar (lambda (row) - (format - "\"%s\" %s" - (car row) - (s-join " " (cdr row)))) - (append table (list (car table))))))) + (mapconcat (lambda (row) + (format + "\"%s\" %s" + (car row) + (mapconcat #'identity (cdr row) " "))) + (append table (list (car table))) + "\n"))) (ticks (or (plist-get params :ticks) (org--plot/sensible-tick-num table (plist-get params :ymin) (plist-get params :ymax)))) (settings - (s-join "\n" - (mapcar (lambda (row) - (let ((data (org--plot/values-stats - (mapcar #'string-to-number (cdr row))))) - (format - "\"%s\" %s %s %s" - (car row) - (or (plist-get params :ymin) - (plist-get data :nice-min)) - (or (plist-get params :ymax) - (plist-get data :nice-max)) - (if (eq ticks 0) 2 ticks) - ))) - (append table (list (car table)))))) + (mapconcat (lambda (row) + (let ((data (org--plot/values-stats + (mapcar #'string-to-number (cdr row))))) + (format + "\"%s\" %s %s %s" + (car row) + (or (plist-get params :ymin) + (plist-get data :nice-min)) + (or (plist-get params :ymax) + (plist-get data :nice-max)) + (if (eq ticks 0) 2 ticks) + ))) + (append table (list (car table))) + "\n")) (setup-file (make-temp-file "org-plot-setup"))) (let ((coding-system-for-write 'utf-8)) (write-region (format org--plot/radar-setup-template data settings) nil setup-file nil :silent)) @@ -533,15 +533,10 @@ manner suitable for prepending to a user-specified script." (user-error "Org-plot type `%s' is undefined." type-name)) (let* ((sets (plist-get params :set)) (lines (plist-get params :line)) - (map (plist-get params :map)) (title (plist-get params :title)) (file (plist-get params :file)) - (ind (plist-get params :ind)) (time-ind (plist-get params :timeind)) (timefmt (plist-get params :timefmt)) - (text-ind (plist-get params :textind)) - (deps (if (plist-member params :deps) (plist-get params :deps))) - (col-labels (plist-get params :labels)) (x-labels (plist-get params :xlabels)) (y-labels (plist-get params :ylabels)) (plot-str (or (plist-get type :plot-str) @@ -650,7 +645,7 @@ line directly before or after the table." org-plot/preset-plot-types))) (unless type - (user-error "Org-plot type `%s' is undefined." type-name)) + (user-error "Org-plot type `%s' is undefined." (plist-get params :plot-type))) (run-with-idle-timer 0.1 nil #'delete-file data-file) (when (eq (cadr table) 'hline) -- 2.29.2