    that the Performance measure scored 3 out of a possible 10. (All scores start from 0.)"
   [ds & options]
   (let [{:keys [width height title]} (into default-frame-options (apply hash-map options))
-        radar (make-radar-panel ds width height)
+        radar (make-radar-panel ds width height title)
         panel (doto (JPanel.)
                 (.setBorder (javax.swing.BorderFactory/createEmptyBorder 20 20 20 20))
                 (.setLayout (BorderLayout.))

  (doseq [[x y] (polar->cartesian polars)]
    (line 0 0 x y)))

(defn draw-labels
  [scale labels]
  (doseq [[l [r theta]] labels]
    (let [[cx cy] (polar->cartesian (* scale r) theta)
          layout (text-layout l)
          bounds (.getBounds layout)]
      (.draw layout *graphics*
                   (float (- cx (.x bounds) (/ (.width bounds) 2.0)))
                   (float (- cy (.y bounds) (/ (.height bounds) 2.0)))))))

(defn draw-radar
  [ds w h]
  (set-color color-background)
  (fill-rect 0 0 w h)
  (let [scale (/ (min (- w 60) (- h 60)) 2.0)]
    (translate (/ w 2.0) (/ h 2.0))
    (with-scaling scale
      (set-pen-width 1.5)

      (set-color color-axis)
      (draw-radials (axes ds))
      (set-pen-width 3.0)

    (draw-labels scale (labels ds))))

(defn make-radar-panel
  [ds width height title]
  (doto
      (proxy [javax.swing.JComponent] []
        (paintComponent [g]
                        (with-antialiasing g
                          (draw-radar ds (.getWidth this) (.getHeight this) title))))))

(defn show-radar-display-in-frame
  "Display a new window with a radar plot of the given data items.
