Thanks a lot d_stranz ,I really appreciate this level of detail and it really helps.My implementation is somewhat like yours except Qwtaxis and State machine for mouse interaction.Keeping a zoom stack is a good idea,I was maintaing in vars which was sort of cumbersome.Another difference is apart from rubber band zoom ,I am also zooming with mouse wheel and I am trying to scale my axis with the same zoom factor but somehow its not proportional,I will try with QwtscaleAxis today....Thanks again for help.