examples.lisp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. ;; Copyright (c) 2008 Accelerated Data Works, Ryan Davis
  2. ;; Permission is hereby granted, free of charge, to any person
  3. ;; obtaining a copy of this software and associated documentation files
  4. ;; (the "Software"), to deal in the Software without restriction,
  5. ;; including without limitation the rights to use, copy, modify, merge,
  6. ;; publish, distribute, sublicense, and/or sell copies of the Software,
  7. ;; and to permit persons to whom the Software is furnished to do so,
  8. ;; subject to the following conditions:
  9. ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  10. ;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  11. ;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  12. ;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  13. ;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  14. ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  15. ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  16. (defpackage #:net.acceleration.adw-charting-examples
  17. (:use #:cl #:adw-charting))
  18. (in-package #:net.acceleration.adw-charting-examples)
  19. (defvar +boink-data+ '((3220487700 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.0"
  20. 9.179666666666666d0 0.039405685894399696d0)
  21. (3221090100 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.1"
  22. 9.539666666666667d0 0.007055336829103466d0)
  23. (3225916800 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.2"
  24. 10.753d0 0.003999999999687438d0)
  25. (3228681600 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.3"
  26. 10.614333333333335d0 0.013920408678669564d0)
  27. (3231187200 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.4"
  28. 10.520666666666665d0 0.015452435982315785d0)
  29. (3233834588 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.5"
  30. 4.021333333333334d0 0.003527668414327933d0)
  31. (3236416994 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.6" 0.636d0
  32. 0.0027325202042536483d0)
  33. (3239264050 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.7"
  34. 0.6373333333333333d0 0.001333333333343252d0)
  35. (3242035118 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.8"
  36. 0.6346666666666666d0 0.0026666666666726262d0)
  37. (3244543999 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.9" 0.636d0
  38. 0.004000000000002d0)
  39. (3247393629 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.10"
  40. 0.6346666666666666d0 0.001333333333343252d0)
  41. (3250352729 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.11"
  42. 0.6373333333333333d0 0.003527668414751055d0)
  43. (3252508216 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.12"
  44. 0.6306666666666666d0 0.001333333333343252d0)
  45. (3255207859 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.13"
  46. 0.6306666666666666d0 0.001333333333343252d0)
  47. (3257502170 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.7.14"
  48. 1.168d0 0.0d0)
  49. (3260700452 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8alpha.0"
  50. 1.1833333333333333d0 0.0023333333333272308d0)
  51. (3262809600 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.0"
  52. 1.1765d0 0.001962141687032421d0)
  53. (3265401600 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.1"
  54. 1.1726666666666667d0 0.0028713140623054215d0)
  55. (3268166400 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.2" 1.17d0
  56. 0.0028751811537286397d0)
  57. (3270758400 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.3"
  58. 1.1793333333333333d0 0.001173787790758412d0)
  59. (3274128000 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.4"
  60. 1.1716666666666666d0 0.0022310934040787145d0)
  61. (3276028800 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.5"
  62. 1.3576666666666666d0 0.07292218074388936d0)
  63. (3278707200 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.6"
  64. 1.1906666666666668d0 0.0018196458751748993d0)
  65. (3281644800 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.7"
  66. 0.6421666666666667d0 0.001939358427709689d0)
  67. (3286648345 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.8"
  68. 0.6383333333333333d0 8.819171036882883d-4)
  69. (3289119215 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.9"
  70. 0.6416666666666667d0 0.0022900752049719864d0)
  71. (3291898308 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.10"
  72. 0.6426666666666666d0 0.0032110918876810885d0)
  73. (3295630912 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.11"
  74. 0.6416666666666667d0 0.001873795909670684d0)
  75. (3297188109 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.12"
  76. 0.6365d0 0.0010567244989399649d0)
  77. (3299770631 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.13"
  78. 0.6415000000000001d0 0.0028017851452220664d0)
  79. (3302885185 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.14"
  80. 0.6415000000000001d0 0.0020124611797470242d0)
  81. (3310671599 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.17"
  82. 0.6451666666666668d0 0.0028684103224187445d0)
  83. (3313262280 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.18"
  84. 0.6411666666666666d0 0.0012758439472729923d0)
  85. (3315681384 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.19"
  86. 0.6441666666666667d0 0.0030704686576772137d0)
  87. (3318629528 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.20"
  88. 0.6486666666666666d0 0.003158762064130637d0)
  89. (3320916959 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.8.21"
  90. 0.6503333333333333d0 0.002905932629030691d0)
  91. (3323359736 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.0"
  92. 0.6558888888888889d0 0.010010334166423676d0)
  93. (3326119900 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.1"
  94. 0.6521666666666667d0 0.00805834155933214d0)
  95. (3328891845 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.2"
  96. 0.6515000000000001d0 0.007651005083508171d0)
  97. (3331319566 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.3"
  98. 0.6654444444444445d0 0.006815602161582924d0)
  99. (3334064418 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.4"
  100. 0.6653888888888889d0 0.00645048454829305d0)
  101. (3336814695 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.5" 0.664d0
  102. 0.006476698159372025d0)
  103. (3339362596 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.6"
  104. 0.6683809523809523d0 0.0062241756732752465d0)
  105. (3342185572 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.7"
  106. 0.6665000000000001d0 0.006690765267835046d0)
  107. (3344689134 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.8"
  108. 0.6602777777777777d0 0.006360522420458006d0)
  109. (3347288951 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.9"
  110. 0.6913333333333335d0 0.02761568870454336d0)
  111. (3349994883 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.10"
  112. 0.6886666666666666d0 0.026655300608041676d0)
  113. (3352402754 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.11"
  114. 0.6636666666666666d0 0.007523028618579228d0)
  115. (3355054163 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.12"
  116. 0.6662499999999999d0 0.00794023604717486d0)
  117. (3357748000 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.13"
  118. 0.66825d0 0.007894306540638947d0)
  119. (3360332432 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.14"
  120. 0.6666666666666666d0 0.008575275711914507d0)
  121. (3362932220 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.15"
  122. 0.66575d0 0.008568905202162075d0)
  123. (3365526402 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.16"
  124. 0.666d0 0.008520919000087585d0)
  125. (3368276815 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.17"
  126. 0.6604166666666667d0 0.006870510471676585d0)
  127. (3370773520 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "0.9.18"
  128. 0.663d0 0.008255393094911835d0)
  129. (3373839403 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0"
  130. 0.6686666666666666d0 0.006528879124801801d0)
  131. (3376130264 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.1"
  132. 0.6531666666666667d0 0.008683695391742307d0)
  133. (3378725494 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.2"
  134. 0.6606666666666666d0 0.00855404683011041d0)
  135. (3381591822 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.3"
  136. 0.6629999999999999d0 0.007874007874012367d0)
  137. (3386771278 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.5"
  138. 0.6925d0 0.007027327609647438d0)
  139. (3389213608 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.6"
  140. 0.6803333333333333d0 0.009360890055238592d0)
  141. (3391973049 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.7"
  142. 0.6866666666666666d0 0.007913675671029945d0)
  143. (3394355973 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.8"
  144. 0.6823333333333333d0 0.007343656645656509d0)
  145. (3397158615 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.9"
  146. 0.6728333333333333d0 0.007504375827852276d0)
  147. (3399722304 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.10"
  148. 0.6616666666666666d0 0.009451096884660209d0)
  149. (3402332883 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.11"
  150. 0.6703333333333333d0 0.010286305498480806d0)
  151. (3405022435 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.12"
  152. 0.6683333333333333d0 0.008534540634292589d0)
  153. (3407746349 "baker" "SBCL,(:ARCH :EMULATED-X86 :FEATURES NIL)" "1.0.13"
  154. 0.6656666666666667d0 0.008647414514048853d0)))
  155. (defun boinkmark ()
  156. (with-line-chart (400 300)
  157. (add-series "baker: SBCL"
  158. (loop for row in +boink-data+
  159. for i from 0
  160. collect (list i (nth 4 row))))
  161. (set-axis :y "seconds" :label-formatter "~,2F")
  162. (set-axis :x nil
  163. :draw-gridlines-p nil
  164. :label-formatter #'(lambda (i)
  165. (nth 3 (nth i +boink-data+))))
  166. (save-file "boink.png")))
  167. (defun random-between (min max)
  168. (+ min
  169. (random (float (- max min)))))
  170. (defun random-point (min-x min-y max-x max-y)
  171. (list (random-between min-x max-x)
  172. (random-between min-y max-y)))
  173. (defun random-series (n min-x min-y max-x max-y)
  174. (sort
  175. (loop for i from 1 to n
  176. collect (random-point min-x min-y max-x max-y))
  177. #'< :key #'first))
  178. (defun mixed-mode ()
  179. "uses the :mode argument to add-series to mix different types of charts"
  180. (with-line-chart (400 300)
  181. (add-series "line" (random-series 20 0 -10 20 10))
  182. (set-axis :y "foos" :label-formatter "~,2f")
  183. (set-axis :x "bars"
  184. :label-formatter "~,2f"
  185. :draw-gridlines-p nil)
  186. (save-file "mixed-mode.png")))