    :layout        viz/svg-heatmap})
 
 (defn cartesian-viz
-  [prefix id the-matrix & [opts]]
+  [prefix id the-matrix rows cols & [opts]]
   (clojure.pprint/pprint the-matrix)
   (->> {:x-axis (viz/linear-axis
-                  {:domain [0 50]
+                  {:domain [0 cols]
                    :range  [50 550]
                    :major  10
                    :minor  5
                    :pos    280})
         :y-axis (viz/linear-axis
-                  {:domain      [0 10]
+                  {:domain      [0 rows]
                    :range       [280 20]
-                   :major       1
+                   :major       10
                    :pos         50
                    :label-dist  15
                    :label-style {:text-anchor "end"}})

                                          {::core/domain-start    -2.5
                                           ::core/domain-end      2.5
                                           ::core/domain-interval 0.1}
                                          {::core/domain-start    -0.5
                                           ::core/domain-end      0.5
                                           ::core/domain-interval 0.1}]
                      ::core/gap-time    50}
        centroids    (vec (repeatedly 3 (fn [] (get-random-sample :unifrom test-props))))
        _            (println "centroids: " centroids)
        samples      (repeatedly 10000 #(hash-map
                                         ::core/raw-datum
                                         {::core/position-value
                                                       (get-random-sample :normal test-props
                                                                          :centroids
                                                                          centroids)
                                          ::core/value 1.0}))

        test-state   {::core/state {::core/grid-cells           {}

              _            (println "tsne: " algo-name)
              output-map   {algo-name (tsne/tsne input-matrix 2 :tsne-algorithm algo-name :perplexity 0.01)}]
          output-map)))
  (let [hm1 (grids-2d->heatmap-vec grid-cells props)
        hm2 (grids-2d->heatmap-vec grid-cells props)]

    (cartesian-viz "hm" :rainbow2 (:matrix hm1) (:cols hm1) (:rows hm1))
    (cartesian-viz "hm" :orange-blue (:matrix hm2) (:cols hm2) (:rows hm2)))
  )


