NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: Long Axis Labels overlap axis scale values

Hi Luke, Hi Suzanne, Hi list,

> Luke & Suzanne Catania wrote:
> 
> I have some long axis labels and with the default axis settings and
> they actual overlap the min and max scale numbers on the scale, which
> then can't be read.. Is there anyway to move the labels a bit to the
> left of the scale values on the Y axis and a bit below the scale
> values on the X axis.
> 
> Also I noticed an email to the list about the visad.AxisScale class
> having several methods to
> change the properties of the AxisScale, such as:
> 
>    setMajorTickSpacing()
>    setMinorTickSpacing()
>    createStandardLabels()
>    setLabelTable()
> 
> I don't see AxisScale available in my version of VisAD.  Is there a
> newer version available and how can I tell what version I have?  And
> are there any example code that shows how to user this class.
> 
> Luke
> 
Yes, AxisScale is relatively new; I don't know how you can get the VisAD
version number (I think at the moment they are all called VisAD 2.0 -
don't think there are build numbers; of course, I could be wrong);
anyway, there's example code from Don Murray, to be downloaded from

ftp://ftp.unidata.ucar.edu/pub/dmurray/ScaleTest.java

But first you need the latest visad.jar.

There wou'll find the code to set your own labels with a hash table:

// create table
Hashtable timeLabels = new Hashtable();

// put some values into it

timeLabels.put(new Double(0), "First");
timeLabels.put(new Double(10), "Last");
timeMap.getAxisScale().setLabelTable(timeLabels);

Wit the lines above, your axis should have a label "First" at the value
of 0 and the label "Last" at about 10 units.

Map test does something similar:

// get the AxisScale
AxisScale latAxis = latMap.getAxisScale();

// change tick props        
latAxis.setMajorTickSpacing(30);
latAxis.setMinorTickSpacing(10);
latAxis.setTitle(""); // no title!

// create a hash table for user defined labels

        Hashtable latTable = new Hashtable();
        latTable.put(new Double(-90), "90S");
        latTable.put(new Double(-60), "60S");
        latTable.put(new Double(-30), "30S");
        latTable.put(new Double(0), "Equator");
        latTable.put(new Double(90), "90N");
        latTable.put(new Double(60), "60N");
        latTable.put(new Double(30), "30N");
        latAxis.setLabelTable(latTable);

Example available from:
ftp://ftp.unidata.ucar.edu/pub/dmurray/MapTest.java

Hope that helps,

Ugo


  • 2001 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: