| 
					
				 | 
			
			
				@@ -194,7 +194,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 (log10 range))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (range-factor (expt 10 rangeOrder)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (nice-min (if (= range 0) (car nums) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		     (/ (float (floor (* minimum range-factor))) range-factor))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -228,44 +228,44 @@ values, namely regarding the range." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "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)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(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)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org--plot/merge-alists (function default alist1 alist2 &rest alists) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Using FUNCTION, combine the elements of all given ALISTS. When an element is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 only present in one alist, DEFAULT is used as the second argument for the FUNCTION." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (when (> (length alists) 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (setq alist2 (apply #'org--plot/merge-alists function default alist2 alists))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (flet ((keys (alist) (mapcar #'car alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (lookup (key alist) (or (cdr (assoc key alist)) default))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (loop with keys = (union (keys alist1) (keys alist2) :test 'equal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  for k in keys collect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (cons k (funcall function (lookup k alist1) (lookup k alist2)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (cl-flet ((keys (alist) (mapcar #'car alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (lookup (key alist) (or (cdr (assoc key alist)) default))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (cl-loop with keys = (cl-union (keys alist1) (keys alist2) :test 'equal) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     for k in keys collect 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (cons k (funcall function (lookup k alist1) (lookup k alist2)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org--plot/item-frequencies (values &optional normalise) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Return an alist indicating the frequency of values in VALUES list." 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -283,7 +283,7 @@ only present in one alist, DEFAULT is used as the second argument for the FUNCTI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(setq value (/ value i)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(setq i (1- i)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (subseq factors 0 -1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (cl-subseq factors 0 -1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defcustom org-plot/gnuplot-script-preamble "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "String or function which provides content to be inserted into the GNUPlot 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -500,8 +500,8 @@ EOD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			       ))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  table))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (setup-file (make-temp-file "org-plot-setup"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (f-write-text (format org--plot/radar-setup-template data settings) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  'utf-8 setup-file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (let ((coding-system-for-write 'utf-8)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (write-region (format org--plot/radar-setup-template data settings) nil setup-file nil :silent)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (format org--plot/radar-template 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    setup-file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (if (eq ticks 0) 2 ticks) 
			 |