[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Color question
JD Smith (jdsmith@astro.cornell.edu) wrote:
: David Fanning wrote:
: >
: > R. Kyle Justice (rkj@dukebar.crml.uab.edu) writes:
: >
: > > I guess there is a difference between a plot and an image
: > > on a postscript device. Plots seem to use filled polygons
: > > (which give pure colors) while images appear to use pixels
: > > or dots.
: <SNIP>
: > > SET_PLOT, 'PS'
: > > DEVICE, Bits_Per_Pixel=8, /Color
: > > TEK_COLOR ; or create your own discrete colormap
: > > bar=BYTARR(200,1000)
: > > FOR i=0,999 DO bar(*,i)=i*9/1000
: > > TV, bar, /Device
: > > PLOT, INDGEN(10), Color=7, Charthick=3, Thick=5, /Noerase
: > > DEVICE, /Close
: The immediate solution is to use *only* those colors as appear in
: countours in the color bar.
: And no for loops are needed. You could write:
: bar=LINDGEN(200,1000)/(200*100)
: or dispense with the chicanery altogether and simply use:
: bar=1b#bindgen(10)
: TV, bar, 0,0,XSIZE=.5,YSIZE=4,/inches
: Using the /inches (or /centimeters) keyword to TV for postscript output
: is highly advised.
: I get the same pure yellow either way: #ffff00
: JD
I just tried the above code and noticed something very interesting.
If I use bar=1b#bindgen(10), then the plot colors come out correct
and pure. However, if I use bar=LINDGEN(200,1000)/(200*100), I get
the same problem I had before. But at least there is no FOR loop :-P
This is may be a printer specific thing. I don't know. But to be
on the safe side, a one-column array should be used. Plus using the
# operator looks better . . .
But many thanks to JD for solving the problem.
Kyle