I have overridden the autoscale as follows

autoScale(int maxSteps,

double &x1, double &x2, double &stepSize) const

{

QwtInterval interval(x1, x2);

interval = interval.normalized();

interval.setMinValue(interval.minValue() - lowerMargin());
interval.setMaxValue(interval.maxValue() + upperMargin());
if (testAttribute(QwtScaleEngine::Symmetric))
{
interval = interval.symmetrize(reference());
}
if (testAttribute(QwtScaleEngine::IncludeReference))
{
interval = interval.extend(reference());
}
if (interval.width() == 0.0)
{
interval = buildInterval(interval.minValue());
}
stepSize = QwtScaleArithmetic::divideInterval(interval.width(),
qMax(maxSteps, 1),
base());
if (!testAttribute(QwtScaleEngine::Floating))
{
interval = align(interval, stepSize);
}
x1 = 0.0;
x2 = interval.maxValue();
if (testAttribute(QwtScaleEngine::Inverted))
{
qSwap(x1, x2);
stepSize = -stepSize;
}

and this serves my purpose