In [2]:
%matplotlib inline
from ggplot import *

import pandas as pd
import numpy as np

In [3]:
df = pd.DataFrame([{"x":2,"y":1,"z":"1","w":4},{"x":5,"y":1,"z":"1","w":2},{"x":7,"y":1,"z":"2","w":2},{"x":9,"y":1,"z":"2","w":2},{"x":12,"y":1,"z":"3","w":4},{"x":2,"y":2,"z":"3","w":4},{"x":5,"y":2,"z":"4","w":2},{"x":7,"y":2,"z":"4","w":2},{"x":9,"y":2,"z":"5","w":2},{"x":12,"y":2,"z":"5","w":4}])
df.head()


Out[3]:
w x y z
0 4 2 1 1
1 2 5 1 1
2 2 7 1 2
3 2 9 1 2
4 4 12 1 3

In [4]:
p = ggplot(df, aes(xmin='x - w / 2', xmax='x + w / 2', ymin='y', ymax='y + 1', fill='z')) + geom_rect()
print p


<ggplot: (273683505)>

In [8]:
p = ggplot(df, aes(xmin='x - w / 2', xmax='x + w / 2', ymin='y', ymax='y + 1', fill='z')) + geom_rect(color='black')
print(p)


<ggplot: (286440725)>

In [7]:
p = ggplot(df, aes(xmin='x - w / 2', xmax='x + w / 2', ymin='y', ymax='y + 1', fill='z')) + \
    geom_rect(color='black') + \
    facet_wrap('w')
print(p)


<ggplot: (285769545)>

In [ ]: