JSFiddle - React, Tailwind, and code Playground

by ramnathv

HTML

<script src="http://rawgithub.com/lodash/lodash/2.2.1/dist/lodash.min.js"></script>

CoffeeScript

data = [
  {mpg: 1, y: 2, g: "A"},
  {mpg: 2, y: 4, g: "A"},
  {mpg: 3, y: 6, g: "B"}
  {mpg: 4, y: 8, g: "B"}
]

aes = {x: "mpg", y: "y", group: "g", color: ["steelblue", "lightblue"]}
    

make_series = (data, aes) -> _.chain(data).
  map( (d) -> 
    d_ = { x: d[aes.x], y: d[aes.y] }
    _.extend d_, _.omit(d, [aes.x, aes.y])
  ).
  groupBy( (d) -> 
     d[aes.group]
  ).
  map( (d, k) -> {
    data: d,
    color: palette.color()
    name: k, 
    info: _.map(d, (d) -> _.omit(d, ["x", "y"]))
   }
  ).
  value()
    
series = make_series data, aes
console.log JSON.stringify(series)