 
 
 (defn axis
-  "Returns axis <g> for input scale with ticks.
-Direction away from the data frame is defined to be positive; use negative margins and widths for the axis to render inside of the data frame"
+  "Returns axis <g> hiccup vector for provided input `scale` and collection of `ticks` (numbers).
+   Direction away from the data frame is defined to be positive; use negative margins and widths to render axis inside of data frame.
+
+   Kwargs:
+
+   > *:orientation* &in; (`:top`, `:bottom`, `:left`, `:right`), where the axis should be relative to the data frame, defaults to `:left`
+
+   > *:formatter* fn run on tick values, defaults to `str`
+
+   > *:major-tick-width* width of ticks (minor ticks not yet implemented), defaults to 6
+
+   > *:text-margin* distance between axis and start of text, defaults to 9"
   [scale ticks & {:keys [orientation
                          formatter
                          major-tick-width



(defn ^:cljs transform-to-center!
  "Scales and centers $svg-el within its parent SVG container.
   Uses parent's width and height attributes only."
  [$svg-el]
  (let [$svg (.-ownerSVGElement $svg-el)

(def ArcMax (- Tau 0.0000001))

(defn circle
  "Calculate SVG path data for a circle of `radius` starting at 3 o'clock and sweeping in positive y."
  ([radius] (circle [0 0] radius))
  ([coordinates radius]
     (let [[x y] (->xy coordinates)]
       (str "M"  (+ x radius) "," y
            "A" (+ x radius) "," (+ y radius) " 0 1,1" (- (+ x radius)) "," y
            "A" (+ x radius) "," (+ y radius) " 0 1,1" (+ x radius) "," y))))

(defn arc
  "Calculate SVG path data for an arc."
  [& {:keys [inner-radius, outer-radius
             start-angle, end-angle, angle-offset]
      :or {inner-radius 0, outer-radius 1
