The nbagg backend in Matplotlib (1.4.3) seems to ignore calls to figure.set_facecolor.
I know that one can disable figure background transparency with nbagg.transparent : False in one's matplotlibrc (not a particularly well documented feature) but even with that set, the background is grey rather than any color requested with figure.set_facecolor.