comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Using color tables in function graphics
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Using color tables in function graphics [message #94783] Wed, 11 October 2017 17:05 Go to next message
laura.hike is currently offline  laura.hike
Messages: 87
Registered: September 2013
Member
I would like to plot multiple lines on the same set of axes and I would like each line to be a different color where the colors follow a specific IDL color table (e.g., rainbow and white = 39). In direct graphics, I could use

loadct, 39

then specify the colors using indices from 0 to 255. I can't find any way to do this in function graphics. Most functions only allow colors to be specified by names. The only exception I can find is using the rgb_table property with "plot," but this just applies the colors to the individual points in a line. Does anyone know a way to do this?

Thanks,

Laura
Re: Using color tables in function graphics [message #94784 is a reply to message #94783] Wed, 11 October 2017 20:36 Go to previous messageGo to next message
Jim  Pendleton is currently offline  Jim Pendleton
Messages: 165
Registered: November 2011
Senior Member
On Wednesday, October 11, 2017 at 6:05:02 PM UTC-6, laura...@gmail.com wrote:
> I would like to plot multiple lines on the same set of axes and I would like each line to be a different color where the colors follow a specific IDL color table (e.g., rainbow and white = 39). In direct graphics, I could use
>
> loadct, 39
>
> then specify the colors using indices from 0 to 255. I can't find any way to do this in function graphics. Most functions only allow colors to be specified by names. The only exception I can find is using the rgb_table property with "plot," but this just applies the colors to the individual points in a line. Does anyone know a way to do this?
>
> Thanks,
>
> Laura

One approach is to retrieve the color vectors from the specified color table, then apply the colors as RGB triplets like this:

IDL> loadct, 39
% LOADCT: Loading table Rainbow + white
IDL> tvlct, r, g, b, /get
IDL> p = plot(findgen(10), findgen(10), color = [r[100], g[100], b[100]])
IDL> p = plot(findgen(10), findgen(10)/2, color = [r[200], g[200], b[200]], /overplot)

In direct graphics with non-decomposed colors, this would be like

IDL> device, decomposed = 0
IDL> loadct, 39
IDL> plot, findgen(10), findgen(10), color = 100
IDL> oplot, findgen(10), findgen(10)/2, color = 200

Jim P.
Re: Using color tables in function graphics [message #94785 is a reply to message #94784] Thu, 12 October 2017 02:27 Go to previous messageGo to next message
Markus Schmassmann is currently offline  Markus Schmassmann
Messages: 129
Registered: April 2016
Senior Member
On 10/12/2017 05:36 AM, Jim P wrote:
> On Wednesday, October 11, 2017 at 6:05:02 PM UTC-6, laura...@gmail.com wrote:
>> I would like to plot multiple lines on the same set of axes and I
>> would like each line to be a different color where the colors follow a
>> specific IDL color table (e.g., rainbow and white = 39). In direct
>> graphics, I could use
>>
>> loadct, 39
>>
>> then specify the colors using indices from 0 to 255. I can't find
>> any way to do this in function graphics. Most functions only allow colors to
>> be specified by names. The only exception I can find is using the
>> rgb_table property with "plot," but this just applies the colors to the
>> individual points in a line. Does anyone know a way to do this?
> One approach is to retrieve the color vectors from the specified
> color table, then apply the colors as RGB triplets like this:
>
> IDL> loadct, 39
> % LOADCT: Loading table Rainbow + white
> IDL> tvlct, r, g, b, /get
> IDL> p = plot(findgen(10), findgen(10), color = [r[100], g[100], b[100]])
> IDL> p = plot(findgen(10), findgen(10)/2, color = [r[200], g[200], b[200]], /overplot)
>
> In direct graphics with non-decomposed colors, this would be like
>
> IDL> device, decomposed = 0
> IDL> loadct, 39
> IDL> plot, findgen(10), findgen(10), color = 100
> IDL> oplot, findgen(10), findgen(10)/2, color = 200
; use the VERT_COLORS keyword:

p=!null
for i=0,9 do p=plot( sin(!dpi*[0:2:.1]+i*.2), $
overplot=p,vert_colors=25*i,rgb_table=39 )

Markus
Re: Using color tables in function graphics [message #94788 is a reply to message #94785] Thu, 12 October 2017 11:26 Go to previous message
laura.hike is currently offline  laura.hike
Messages: 87
Registered: September 2013
Member
I like that -- thanks!

On Thursday, October 12, 2017 at 2:27:11 AM UTC-7, Markus Schmassmann wrote:
> On 10/12/2017 05:36 AM, Jim P wrote:
>> On Wednesday, October 11, 2017 at 6:05:02 PM UTC-6, laura...@gmail.com wrote:
>>> I would like to plot multiple lines on the same set of axes and I
>>> would like each line to be a different color where the colors follow a
>>> specific IDL color table (e.g., rainbow and white = 39). In direct
>>> graphics, I could use
>>>
>>> loadct, 39
>>>
>>> then specify the colors using indices from 0 to 255. I can't find
>>> any way to do this in function graphics. Most functions only allow colors to
>>> be specified by names. The only exception I can find is using the
>>> rgb_table property with "plot," but this just applies the colors to the
>>> individual points in a line. Does anyone know a way to do this?
>>
>
> p=!null
> for i=0,9 do p=plot( sin(!dpi*[0:2:.1]+i*.2), $
> overplot=p,vert_colors=25*i,rgb_table=39 )
>
> Markus
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: How to extract a scalar from a vector?
Next Topic: extract circle from data with idl

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 11:30:04 PDT 2025

Total time taken to generate the page: 0.00705 seconds