Try this: (defn add-rows [] (let [data (js/google.visualization.DataTable.)] (.addColumn data "string" "Topping") (.addColumn data "number" "slices") (.addRows data (clj->js [["Mushrooms" 3] ["Onions" 1] ["Olives" 1]])) data))
(defn chart-options [] (clj->js {:title "How much Pizza i ate last night" :width 400 :height 300})) (defn get-chart [] (js/google.visualization.PieChart. (.get ($ "div.container div#content") 0))) (defn draw-chart [] (let [data (add-rows) options (chart-options) chart (get-chart)] (.draw chart data options))) (.load js/google "visualization" "1.0" (clj->js {:packages ["corechart"]})) (.setOnLoadCallback js/google draw-chart) On Fri, Apr 27, 2012 at 11:15 AM, Murtaza Husain <murtaza.hus...@sevenolives.com> wrote: > Hi, > > I am trying to use google charts from clojurescript, however cant get it > working. I have included both the js code from google's site and my > clojurescript conversion. Any help in figuring out the problem will be > appreciated. > > Thanks, > Murtaza > > JS Code - > > <script type="text/javascript" src="https://www.google.com/jsapi"></script> > <script type="text/javascript"> > > // Load the Visualization API and the piechart package. > google.load('visualization', '1.0', {'packages':['corechart']}); > > // Set a callback to run when the Google Visualization API is loaded. > google.setOnLoadCallback(drawChart); > > // Callback that creates and populates a data table, > // instantiates the pie chart, passes in the data and > // draws it. > function drawChart() { > > // Create the data table. > var data = new google.visualization.DataTable(); > data.addColumn('string', 'Topping'); > data.addColumn('number', 'Slices'); > data.addRows([ > ['Mushrooms', 3], > ['Onions', 1], > ['Olives', 1], > ['Zucchini', 1], > ['Pepperoni', 2] > ]); > > // Set chart options > var options = {'title':'How Much Pizza I Ate Last Night', > 'width':400, > 'height':300}; > > // Instantiate and draw our chart, passing in some options. > var chart = new > google.visualization.PieChart(document.getElementById('chart_div')); > chart.draw(data, options); > } > </script> > > > CLJS code - > > ;;clj->js and $ are functions from jayq > > (defn add-rows [] > (let [data (js/google.visualization.DataTable.)] > (.addColumn data "string" "Topping") > (.addColumn data "number" "slices") > (.addRows data [["Mushrooms" 3] ["Onions" 1] ["Olives" 1]]) > data)) > > > (defn chart-options [] > (clj->js {:title "How much Pizza i ate last night" > :width 400 > :height 300})) > > (defn get-chart [] > (js/google.visualization.PieChart. ($ "div.container div#content"))) > > (defn draw-chart [] > (fn [] > (let [data (add-rows) > options (chart-options) > chart (get-chart)] > (.draw chart data options)))) > > > (.load js/google "visualization" "1.0" {"packages" ["corechart"]}) > > (.setOnLoadCallback js/google draw-chart) > > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en