Re: Using VERT_COLORS=RGBA in PLOT()? [message #88572 is a reply to message #88570] |
Tue, 13 May 2014 13:41  |
dg86
Messages: 118 Registered: September 2012
|
Senior Member |
|
|
On Tuesday, May 13, 2014 1:52:48 PM UTC-4, Chris Torrence wrote:
> On Tuesday, May 13, 2014 10:27:55 AM UTC-6, David Grier wrote:
>
>> Dear Folks,
>
>>
>
>>
>
>>
>
>> I am trying to create a scatter plot in IDL 8.3 (MacOS)
>
>>
>
>> whose symbols have different colors and alpha values.
>
>>
>
>> The documentation for plot() suggests that I should be able to pass a 4 x NPTS array of
>
>>
>
>> RGBA values to the VERT_COLORS property of plot(), where NPTS is the number of points in
>
>>
>
>> my data set. When I try this, IDL complains:
>
>>
>
>>
>
>>
>
>> % PLOT: Array subscript for PALETTE must have same size as source expression.
>
>>
>
>>
>
>>
>
>> Here's a minimal example:
>
>>
>
>>
>
>>
>
>> npts = 10
>
>>
>
>> a = findgen(2,npts)
>
>>
>
>> rgb = bytarr(3,npts)
>
>>
>
>> p1 = plot(a, vert_colors=rgb) ; works
>
>>
>
>> p2 = plot(a, vert_colors=rgba) ; doesn't work
>
>>
>
>>
>
>>
>
>> I'd be grateful for pointers on how to set the transparency of individual vertices
>
>>
>
>> in a plot.
>
>>
>
>>
>
>>
>
>> Many thanks,
>
>>
>
>>
>
>>
>
>> David
>
>
>
> Hi David,
>
>
>
> Looks like a bug. I'll go ahead and fix it. In the meantime, the workaround is to set the vert_colors after the plot has been created. You also need to set an rgb_table (this will also get fixed). Something like this:
>
>
>
> npts = 10
>
> a = findgen(2,npts)
>
> rgba = bytarr(4,npts)
>
> rgba[3,*] = 20b*bindgen(npts)
>
> p2 = plot(a)
>
> p2.rgb_table=0
>
> p2.vert_colors=rgba
>
>
>
> Thanks for catching this!
>
> -Chris
>
> ExelisVIS
This is perfect. Thanks for the fix!
TTFN,
David
|
|
|