public void replot(){
  width=co.size();
  height=(int)Math.ceil(width * .2);
  ratio=width / (double)height;
  height=height < MIN_HEIGHT ? MIN_HEIGHT : height > MAX_HEIGHT ? MAX_HEIGHT : height;
  if (scale == null) {
    scale=computeScale(co);
  }
  BufferedImage img=new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
  int x=0;
  for (DBIDIter it=co.iter(); it.valid(); it.advance()) {
    double reach=co.getReachability(it);
    final int y=scaleToPixel(reach);
    try {
      int col=colors.getColorForDBID(it);
      for (int y2=height - 1; y2 >= y; y2--) {
        img.setRGB(x,y2,col);
      }
    }
 catch (    ArrayIndexOutOfBoundsException e) {
      LOG.error("Plotting out of range: " + x + ","+ y+ " >= "+ width+ "x"+ height);
    }
    x++;
  }
  plot=img;
}

public void replot ( ) { width = co . size ( ) ; height = ( int ) Math . ceil ( width * .2 ) ; ratio = width / ( double ) height ; height = height < MIN_HEIGHT ? MIN_HEIGHT : height > MAX_HEIGHT ? MAX_HEIGHT : height ; if ( scale == null ) { scale = computeScale ( co ) ; } BufferedImage img = new BufferedImage ( width , height , BufferedImage . TYPE_INT_ARGB ) ; int x = 0 ; for ( DBIDIter it = co . iter ( ) ; it . valid ( ) ; it . advance ( ) ) { double reach = co . getReachability ( it ) ; final int y = scaleToPixel ( reach ) ; try { int col = colors . getColorForDBID ( it ) ; for ( int y2 = height - 1 ; y2 >= y ; y2 -- ) { img . setRGB ( x , y2 , col ) ; } } catch ( ArrayIndexOutOfBoundsException e ) { LOG . error ( "Plotting out of range: " + x + "," + y + " >= " + width + "x" + height ) ; } x ++ ; } plot = img ; }
trigger a redraw of the optics plot
