User:Yurik/Weather heatmap

From Wikipedia, the free encyclopedia
<graph>
{
  "width": 600,
  "height": 140,

  "data": [
    {
      "name": "temperature",
      "url": "tabular:///ncei.noaa.gov/weather/New York City.tab",
      "format": {"type": "json", "property":"data", "parse": {"date": "date"} },
      "transform": [
      	{"type": "filter", "test": "datum.avgHighTemp"},
        {"type": "formula", "field": "month", "expr": "timeFormat('%b', datum.date)"},
        {"type": "formula", "field": "year", "expr": "datetime(year(datum.date), 0, 1)"},
        {"type": "formula", "field": "temp", "expr": "(datum.avgHighTemp+datum.avgLowTemp)/2"}
      ]
    }
  ],

  "scales": [
    {
      "name": "x",
      "type": "time",
      "domain": {"data": "temperature", "field": "year"},
      "range": "width"
    }, {
      "name": "y",
      "type": "ordinal",
      // For some strange reason I couldn't get it to sort base on the date's month
      "domain": ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],
      "range": "height"
    }, {
      "name": "c",
      "type": "linear",
      "domain": [0, 5.2,7.3,9.4,11.5,13.6,15.7,17.8,19.9,22.0,24.1],
      "range": ["#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf", "#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"],
      "zero": false
    }
  ],

  "axes": [
    {"type": "x", "scale": "x"},
    {"type": "y", "scale": "y"}
  ],

  "marks": [
    {
      "type": "rect",
      "from": {"data": "temperature"},
      "properties": {
        "enter": {
          "x": {"scale": "x", "field": "year"},
          "width": {"value": 5},
          "y": {"scale": "y", "field": "month"},
          "height": {"scale": "y", "band": true},
          "fill": {"scale": "c", "field": "temp"}
        }
      }
    }
  ]
}
</graph>