Changeset 2501


Ignore:
Timestamp:
03/22/07 17:51:03 (13 years ago)
Author:
curtis
Message:

Some improvements to the log scale.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/apps/slim/SlimPlotter.java

    r2489 r2501  
    1818import java.io.*; 
    1919import java.rmi.RemoteException; 
    20 import java.util.Arrays; 
    21 import java.util.Vector; 
     20import java.util.*; 
    2221import javax.swing.*; 
    2322import javax.swing.border.EmptyBorder; 
     
    5958 
    6059  private static final char TAU = 'T'; 
     60 
     61  // log base 10, for now 
     62  private static final float BASE = 10; 
     63  private static final float BASE_LOG = (float) Math.log(BASE); 
    6164 
    6265  // -- Fields -- 
     
    11501153      boolean doTauColors = colorTau.isSelected(); 
    11511154 
     1155      // update scale labels for log scale 
     1156      if (doLog) { 
     1157        AxisScale zScale = zMap.getAxisScale(); 
     1158        Hashtable hash = new Hashtable(); 
     1159        for (int i=1; i<=maxVal; i*=BASE) { 
     1160          hash.put(new Double(Math.log(i) / BASE_LOG), "" + i); 
     1161        } 
     1162        try { 
     1163          zScale.setLabelTable(hash); 
     1164        } 
     1165        catch (VisADException exc) { exc.printStackTrace(); } 
     1166      } 
     1167 
    11521168      // calculate samples 
    11531169      int numChanVis = 0; 
     
    11721188          } 
    11731189          samps[ndx] = sum; 
    1174           if (doLog) samps[ndx] = (float) Math.log(samps[ndx] + 1); 
     1190          if (doLog) { 
     1191            samps[ndx] = (float) samps[ndx] >= 1 ? 
     1192              (float) Math.log(samps[ndx]) / BASE_LOG : Float.NaN; 
     1193          } 
    11751194          if (samps[ndx] > maxVal) maxVal = samps[ndx]; 
    11761195          if (samps[ndx] > maxVals[cc]) maxVals[cc] = samps[ndx]; 
     
    13771396      setProgress(progress, ++p); 
    13781397      progress.close(); 
     1398 
     1399      // update scale labels for linear scale 
     1400      if (!doLog) { 
     1401        AxisScale zScale = zMap.getAxisScale(); 
     1402        zScale.createStandardLabels(maxVal, 0, 0, maxVal); 
     1403      } 
    13791404    } 
    13801405 
Note: See TracChangeset for help on using the changeset viewer.