In [1]:
import altair.vega.v2 as vg

In [3]:
spec = {
  "width": 400,
  "height": 200,
  "padding": {"top": 10, "left": 30, "bottom": 30, "right": 10},
  "data": [
    {
      "name": "table",
      "values": [
        {"x": 1,  "y": 28}, {"x": 2,  "y": 55},
        {"x": 3,  "y": 43}, {"x": 4,  "y": 91},
        {"x": 5,  "y": 81}, {"x": 6,  "y": 53},
        {"x": 7,  "y": 19}, {"x": 8,  "y": 87},
        {"x": 9,  "y": 52}, {"x": 10, "y": 48},
        {"x": 11, "y": 24}, {"x": 12, "y": 49},
        {"x": 13, "y": 87}, {"x": 14, "y": 66},
        {"x": 15, "y": 17}, {"x": 16, "y": 27},
        {"x": 17, "y": 68}, {"x": 18, "y": 16},
        {"x": 19, "y": 49}, {"x": 20, "y": 15}
      ]
    }
  ],
  "scales": [
    {
      "name": "x",
      "type": "ordinal",
      "range": "width",
      "domain": {"data": "table", "field": "x"}
    },
    {
      "name": "y",
      "type": "linear",
      "range": "height",
      "domain": {"data": "table", "field": "y"},
      "nice": True
    }
  ],
  "axes": [
    {"type": "x", "scale": "x"},
    {"type": "y", "scale": "y"}
  ],
  "marks": [
    {
      "type": "rect",
      "from": {"data": "table"},
      "properties": {
        "enter": {
          "x": {"scale": "x", "field": "x"},
          "width": {"scale": "x", "band": True, "offset": -1},
          "y": {"scale": "y", "field": "y"},
          "y2": {"scale": "y", "value": 0}
        },
        "update": {
          "fill": {"value": "steelblue"}
        },
        "hover": {
          "fill": {"value": "red"}
        }
      }
    }
  ]
}

In [4]:
vg.renderers.get()(spec)


Out[4]:
({'application/vnd.vega.v2+json': {'axes': [{'scale': 'x', 'type': 'x'},
    {'scale': 'y', 'type': 'y'}],
   'data': [{'name': 'table',
     'values': [{'x': 1, 'y': 28},
      {'x': 2, 'y': 55},
      {'x': 3, 'y': 43},
      {'x': 4, 'y': 91},
      {'x': 5, 'y': 81},
      {'x': 6, 'y': 53},
      {'x': 7, 'y': 19},
      {'x': 8, 'y': 87},
      {'x': 9, 'y': 52},
      {'x': 10, 'y': 48},
      {'x': 11, 'y': 24},
      {'x': 12, 'y': 49},
      {'x': 13, 'y': 87},
      {'x': 14, 'y': 66},
      {'x': 15, 'y': 17},
      {'x': 16, 'y': 27},
      {'x': 17, 'y': 68},
      {'x': 18, 'y': 16},
      {'x': 19, 'y': 49},
      {'x': 20, 'y': 15}]}],
   'height': 200,
   'marks': [{'from': {'data': 'table'},
     'properties': {'enter': {'width': {'band': True,
        'offset': -1,
        'scale': 'x'},
       'x': {'field': 'x', 'scale': 'x'},
       'y': {'field': 'y', 'scale': 'y'},
       'y2': {'scale': 'y', 'value': 0}},
      'hover': {'fill': {'value': 'red'}},
      'update': {'fill': {'value': 'steelblue'}}},
     'type': 'rect'}],
   'padding': {'bottom': 30, 'left': 30, 'right': 10, 'top': 10},
   'scales': [{'domain': {'data': 'table', 'field': 'x'},
     'name': 'x',
     'range': 'width',
     'type': 'ordinal'},
    {'domain': {'data': 'table', 'field': 'y'},
     'name': 'y',
     'nice': True,
     'range': 'height',
     'type': 'linear'}],
   'width': 400},
  'text/plain': '<Vega 2 object>'},
 {})

In [5]:
vg.vega(spec, validate=True)



In [6]:
vg.renderers.enable('json')

In [7]:
vg.vega(spec, validate=True)


<Vega 2 object>