you need some equivalent of dev.off()
after the print command.
That is, in order to save your graphs to pdf, the general outline is:
pdf(...)
print(....)
dev.off()
Failing to call dev.off()
will result in an empty pdf file.
from this source, it appears that the equivalent in rpy2
might be
grdevices.dev_off()