|
@@ -41,18 +41,23 @@
|
|
|
finally (return (values min max))))
|
|
finally (return (values min max))))
|
|
|
|
|
|
|
|
(defun make-chart (series &key (usd t) (eur t) (gbp t) (brent t))
|
|
(defun make-chart (series &key (usd t) (eur t) (gbp t) (brent t))
|
|
|
- (let ((flat (remove-if #'null (if (alexandria:circular-list-p series)
|
|
|
|
|
- (flat-circular series)
|
|
|
|
|
- series))))
|
|
|
|
|
- (adw-charting:with-line-chart (1200 900)
|
|
|
|
|
- (when usd (adw-charting:add-series "USD/RUB" (get-serie flat "USD/RUB")))
|
|
|
|
|
- (when eur (adw-charting:add-series "EUR/RUB" (get-serie flat "EUR/RUB")))
|
|
|
|
|
- (when gbp (adw-charting:add-series "GBP/RUB" (get-serie flat "GBP/RUB")))
|
|
|
|
|
|
|
+ (let* ((r (multiple-value-list (range series :key #'car)))
|
|
|
|
|
+ (fmt (if (<= (- (second r) (first r))
|
|
|
|
|
+ (* 60 60 36))
|
|
|
|
|
+ '((:hour 2) ":" (:min 2))
|
|
|
|
|
+ '((:day 2) "." (:month 2) " " (:hour 2) ":" (:min 2)))))
|
|
|
|
|
+ (adw-charting:with-line-chart (890 600)
|
|
|
|
|
+ (when usd (adw-charting:add-series "USD/RUB" (get-serie series "USD/RUB")))
|
|
|
|
|
+ (when eur (adw-charting:add-series "EUR/RUB" (get-serie series "EUR/RUB")))
|
|
|
|
|
+ (when gbp (adw-charting:add-series "GBP/RUB" (get-serie series "GBP/RUB")))
|
|
|
(when brent (adw-charting:add-series "Brent last day futures"
|
|
(when brent (adw-charting:add-series "Brent last day futures"
|
|
|
- (get-serie flat "Brent")))
|
|
|
|
|
|
|
+ (get-serie series "Brent")))
|
|
|
(adw-charting:set-axis
|
|
(adw-charting:set-axis
|
|
|
:x "Time" :draw-gridlines-p t
|
|
:x "Time" :draw-gridlines-p t
|
|
|
- :label-formatter #'(lambda (v) (local-time:format-timestring nil (local-time:unix-to-timestamp v)
|
|
|
|
|
- :format '((:hour 2) ":" (:min 2)))))
|
|
|
|
|
|
|
+ :label-formatter #'(lambda (v)
|
|
|
|
|
+ (local-time:format-timestring
|
|
|
|
|
+ nil
|
|
|
|
|
+ (local-time:unix-to-timestamp v)
|
|
|
|
|
+ :format fmt)))
|
|
|
(adw-charting:set-axis :y "RUB" :draw-gridlines-p t :label-formatter "~,2F")
|
|
(adw-charting:set-axis :y "RUB" :draw-gridlines-p t :label-formatter "~,2F")
|
|
|
(adw-charting:save-file "chart.png"))))
|
|
(adw-charting:save-file "chart.png"))))
|