[R] scatter3d: problem with spheres-color

René Mayer mayer at psychologie.tu-dresden.de
Fri Apr 13 13:32:55 CEST 2012


I get the rgb-a are the same rgb-a's:

> spheres3d(1:5, 1:5, 1:5, col=1:5, radius=(1:5)/10)
> rgl.ids()
   id    type
1 11 spheres
> rgl.attrib(11, "color")
      r         g b a
[1,] 0 0.0000000 0 1
[2,] 1 0.0000000 0 1
[3,] 0 0.8039216 0 1
[4,] 0 0.0000000 1 1
[5,] 0 1.0000000 1 1

as all sheres are black it seems that only the first rgb-a row is used  
for all spheres.
I remember that I could set different colors in different scatter3d  
calls, e.g., having all sheres 'red' or 'yellow' within one plot. As  
if only the first row is applied to all objects.
René


René

Zitat von "Duncan Murdoch" <murdoch.duncan at gmail.com>:

> On 12-04-13 5:32 AM, René Mayer wrote:
>> Dear John and Duncan,
>>
>> thanks for your ideas! Unfortunatly, calling spheres from rgl
>> did not resolve the problem on my machine.
>>
>> Both - spheres3d() and rgl.spheres() -
>> behave the same: black spheres, all aqual colored.
>> The only difference beeing the looking angle and thebackround color.
>> Seems to me that the 'col=1:5' argument is completly ignored.
>
> Could you try this:  After using one of the commands that's not  
> working (e.g. my spheres3d command from below), run the following:
>
> rgl.ids()
>
> This will give a dataframe of objects in the scene, something like
>
>   id    type
> 1  6 spheres
>
>
> (There will be more things listed if you have plotted other objects,  
> and the id number could be different.)  Then run
>
> rgl.attrib(6, "color")
>
> (The 6 is the id associated with the spheres object.)
>
> On my system after my spheres3d() call below, this gives
>
>> rgl.attrib(6, "color")
>      r         g b a
> [1,] 0 0.0000000 0 1
> [2,] 1 0.0000000 0 1
> [3,] 0 0.8039216 0 1
> [4,] 0 0.0000000 1 1
> [5,] 0 1.0000000 1 1
>
> Can you tell me what you get? If you get the same thing as me, then  
> you've got a rendering problem; if you only see black colors listed,  
> then it's a problem at a higher level.
>
> Duncan MUrdoch
>
>>
>> René
>>
>>
>>
>> Zitat von "Duncan Murdoch"<murdoch.duncan at gmail.com>:
>>
>>> On 12/04/2012 2:27 PM, John Fox wrote:
>>>> Dear René,
>>>>
>>>> I've confirmed that the spheres aren't coloured correctly on my
>>>> Ubuntu system (the first colour is used for all of the spheres),
>>>> and I know that this works right on Windows, as you mentioned. I'm
>>>> curious to try it on my Mac, but don't have that handy at the moment.
>>>>
>>>> I also looked at the code for scatter3d.default(), and that is
>>>> pretty straightforward; scatterplot3d.default() draws the spheres
>>>> with the command
>>>>
>>>>     rgl.spheres(x, y, z, color = surface.col[as.numeric(groups)],
>>>>                 radius = size)
>>>>
>>>> I'm copying this response to Duncan Murdoch (the coauthor and
>>>> maintainer of the rgl package) in case he has any insight into the
>>>> problem.
>>>>
>>>> Thank you for drawing this issue to my attention.
>>>
>>>
>>> Calling rgl.spheres looks dangerous to me:  the rgl.* functions make
>>> permanent changes to material properties.  Generally it's safer to
>>> call spheres3d, as all of the *3d versions of functions make local
>>> changes.
>>>
>>> But there should be no differences in that between Ubuntu and
>>> Windows.  Can you put together a simple example that does give
>>> differences?  For example, on Windows this gives 5 different colours:
>>>
>>> rgl.spheres(1:5, 1:5, 1:5, col=1:5, radius=(1:5)/10)
>>>
>>> My preferred version would be
>>>
>>> spheres3d(1:5, 1:5, 1:5, col=1:5, radius=(1:5)/10)
>>>
>>> Do they behave the same?
>>>
>>> Duncan Murdoch
>>>
>>
>
>



More information about the R-help mailing list