This is a very useful submission. I'm sorry that I submitted 1 star above, I tried to cancel but couldn't. I think it happened when I refreshed my browser. If someone knows how to cancel it, please by all means do. I meant to give 5 stars.
I just want to say that I made a minor extension to this script. It should appear under my name, it's a very trivial extension: I have Introduced a distinction between offsets for the horizontal axis offset_x and vertical axis offset_y. This is useful if your x-axis and y-axis do not cross at the origin. This extension gives you independent control of the offset for the x-axis labels and y-axis labels. If you're interested it should soon appear under my name. I don't have the reference now as I only just uploaded it. Thanks again to Alexander.