if (min == Double.POSITIVE_INFINITY) min = max = 0.0;
  private void determineBounds() {     double value,min,max;        if (m_plotInstances != null && 	m_plotInstances.numAttributes() > 0 &&	m_plotInstances.numInstances() > 0) {      // x bounds      min=Double.POSITIVE_INFINITY;      max=Double.NEGATIVE_INFINITY;      if (m_plotInstances.attribute(m_xIndex).isNominal()) {	m_minX = 0;	m_maxX = m_plotInstances.attribute(m_xIndex).numValues()-1;      } else {	for (int i=0;i<m_plotInstances.numInstances();i++) {	  if (!m_plotInstances.instance(i).isMissing(m_xIndex)) {	    value = m_plotInstances.instance(i).value(m_xIndex);	    if (value < min) {	      min = value;	    }	    if (value > max) {	      max = value;	    }	  }	}		m_minX = min; m_maxX = max;	if (min == max) {	  m_maxX += 0.05;	  m_minX -= 0.05;	}      }      // y bounds      min=Double.POSITIVE_INFINITY;      max=Double.NEGATIVE_INFINITY;      if (m_plotInstances.attribute(m_yIndex).isNominal()) {	m_minY = 0;	m_maxY = m_plotInstances.attribute(m_yIndex).numValues()-1;      } else {	for (int i=0;i<m_plotInstances.numInstances();i++) {	  if (!m_plotInstances.instance(i).isMissing(m_yIndex)) {	    value = m_plotInstances.instance(i).value(m_yIndex);	    if (value < min) {	      min = value;	    }	    if (value > max) {	      max = value;	    }	  }	}		m_minY = min; m_maxY = max;	if (min == max) {	  m_maxY += 0.05;	  m_minY -= 0.05;	}      }            // colour bounds      min=Double.POSITIVE_INFINITY;      max=Double.NEGATIVE_INFINITY;      for (int i=0;i<m_plotInstances.numInstances();i++) {	if (!m_plotInstances.instance(i).isMissing(m_cIndex)) {	  value = m_plotInstances.instance(i).value(m_cIndex);	  if (value < min) {	    min = value;	  }	  if (value > max) {	    max = value;	  }	}      }      m_minC = min; m_maxC = max;    }  }