Yes, I think that PyROOT in general has some preconditions before a canvas will even display permanently on the screen:
To even get the canvases to display when I run my code, I have to write:
$ python
execfile(“prob_bin.py”)
In other words, if I run this program from the linux command line
$ python prob_bin.py
the canvases do not even display for more than a second before they vanish (see Display canvas)