[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*Subject*: Re: Double tickmark annotations*From*: "J.D. Smith" <jdsmith(at)astro.cornell.edu>*Date*: Wed, 25 Oct 2000 17:58:56 -0400*Newsgroups*: comp.lang.idl-pvwave*Organization*: Cornell University*References*: <Pine.LNX.4.21.0010251450330.7654-100000@moroni.dartmouth.edu>*Sender*: verified_for_usenet(at)cornell.edu (jts11 on vodka.tn.cornell.edu)*Xref*: news.doit.wisc.edu comp.lang.idl-pvwave:21902

"Shawn L. Young" wrote: > > Hello, > I would like to know how to give more than one name to a each > tickmark along the x axis. For instance, I want to list both a satellite's > latitude and radial distance from the center of the Earth along the x axis. > However, I don't know ahead of time how these two quantities correlate so I > can't hardwire tick names using xtickname. Is there a way to give the plot > routine both arrays and have it determine the ticknames? If not, the help > file is very brief on the use of xtickname. If I knew how IDL chose where > to put the ticknames I might be able to write code to do the correlating on > the fly. But when I am using a > 500 element array for the x axis and want > to be sure that I am doing the best correlation I can between array > elements and xtickname elements. > Thanks You can use XTICKFORMAT, which is a named function to which idl passes each of it's desired tick values, along with which axis, and the index of the tickmark. You can then calculate any string you like based on this information, and return it for display. If, however, you don't like how IDL is choosing its tick locations, you can certainly calculate your own, along with labels, and use XTICKV and XTICKNAME. Presumably this calculation would be based on the data itself, similar to the calculation IDL does if you let it (or not). Here's an example such calculation: range=latest-earliest divs=[1,2,5,10,15,30,60,120]*60L n=float(range)/divs ;approximate number of these intervals tmp=min(abs(n-8),wh) ;nearest to 8 tick intervals low=ceil(float(earliest)/divs[wh])*divs[wh] high=latest/divs[wh]*divs[wh] nticks=(high-low)/divs[wh] ticks=low+lindgen(nticks+1)*divs[wh] This finds ticks at a certain preset list of intervals, ensuring that not too many and not too few ticks are chosen. Obviously, it can't accomodate any data range (actually in this case it's seconds less than one day, so it can), so you might have to have more elaborate coding. But it gives you an idea. Also, you must know the correlation between your two independent variables beforehand, since otherwise you wouldn't be able to relate them during plotting at all. Perhaps I've misinterpreted you. By the way, it sounds like yours is an excellent candidate for two axes (top and bottom), for each of latitude and distance. JD -- J.D. Smith | WORK: (607) 255-6263 Cornell Dept. of Astronomy | (607) 255-5842 304 Space Sciences Bldg. | FAX: (607) 255-5875 Ithaca, NY 14853 |

**References**:**Double tickmark annotations***From:*Shawn L. Young

- Prev by Date:
**Re: IDL/Wave alternatives** - Next by Date:
**Re: Double tickmark annotations** - Prev by thread:
**Double tickmark annotations** - Next by thread:
**Re: Double tickmark annotations** - Index(es):