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

Re: POLYFILL erases my tick values - solution?



Andrew <noymer@my-deja.com> wrote in message
8qgda2$ml8$1@nnrp1.deja.com">news:8qgda2$ml8$1@nnrp1.deja.com...
>    I am using POLYFILL to shade various regions of an X-Y plot different
> shades of grey.  I use PLOT (with /nodata) to draw the axes, then I
> use PLOTS to draw a bunch of lines, etc.   (In this case, I'm making a
> simple diagram, not really plotting data, but the question is pretty
> general.)
>
>    I'm making PostScript output so I am limited to solid colors
> as opposed to patterns (is there a good reason for that???), but
> so far that's not my real problem.
>
>     The problem is that POLYFILL seems to obliterate everything in
> its path, including axis tick values.  For the lines I draw, there is
> an easy solution: I just shade first, then draw.  But I am working with
> \DATA coordinates, so I'm quite sure (???) I have to PLOT before I can
> POLYFILL, hence the problem that the tick values are over-shaded.
>
>     Even the RSI "Using IDL" manual, 1998 paper version, p. 190,
> shows a (very ugly!) example of shading that erases tick values.
>
>      The best solution I have found is to use the AXIS procedure
> after POLYFILL, to re-draw the axis.
>
>     IS THIS THE BEST SOLUTION?

Here's another solution:

;- Make sure decomposed color is off, and load grayscale
device, decomposed=0
loadct, 0

;- Set plot position (normal coordinates)
p = [0.1, 0.1, 0.9, 0.9]

;- Fill plot window
polyfill, [p[0], p[2], p[2], p[0], p[0]], [p[1], p[1], p[3], p[3], p[1]], $
  /normal, color=(0.5 * !d.table_size)

;- Create plot
plot, indgen(10), /noerase, position=p

Cheers,
Liam.
http://cimss.ssec.wisc.edu/~gumley