[Scilab-users] question on graphic children order

Antoine Monmayrant antoine.monmayrant at laas.fr
Tue Apr 9 09:22:17 CEST 2019


Hello,

As Stéphane said, using a tag and findobj is a possibility that I use 
for complex layouts.
Here is another one: build your own vector of handles that you order the 
way you want:

as=[];
subplot(221)
plot(1,2)
as=[as,gca()]
subplot(222)
plot(1:2,2:3)
as=[as,gca()]
subplot(223)
plot(2*[1:2],2:3)
as=[as,gca()]
subplot(224)
plot(2*[1:2],-[2:3])
as=[as,gca()]
as.foreground=color('gray');
as.background=color('lightgray');
as.thickness=2;
as.font_size=4;

Cheers,

Antoine

Le 09/04/2019 à 08:30, P M a écrit :
> Federico...thanks for asking the question.
> I was wondering about it myself for quite some time.
> Once recognizing the fact, I just accepted that new entities are 
> placed at the first position.
> However, it might be interesting to get some insight of why it is like 
> this....for now I guessed it has to do with how to handle memory.
>
> Philipp
>
>
> Am Mo., 8. Apr. 2019 um 23:01 Uhr schrieb Stéphane Mottelet 
> <stephane.mottelet at utc.fr <mailto:stephane.mottelet at utc.fr>>:
>
>     Le 08/04/2019 à 22:56, Federico Miyara a écrit :
>
>>
>>     Stéphane,
>>
>>     Sometimes one just needs to extract some parameter from an entity
>>     and indexing is a valid way to access it.
>
>     So what is your problem since you know that the order of entities
>     is, though not natural, reproductible ? If you really need to
>     recover a deeply hidden entity, use tags and the findobj() function.
>
>     S.
>
>>
>>     Federico
>>
>>
>>     On 08/04/2019 12:18, Stéphane Mottelet wrote:
>>>
>>>     Hello,
>>>
>>>     Le 07/04/2019 à 10:13, Federico Miyara a écrit :
>>>>
>>>>     Dear all,
>>>>
>>>>     I would like to know if there is a reason for the fact that
>>>>     whenever new graphic objects are added to an axes, the last one
>>>>     that has been created is always the one with index 1 instead of
>>>>     n+1 (where n is the number of objects prior to new one).
>>>>
>>>>     Example:
>>>>
>>>>     scf(1)
>>>>     clf(1)
>>>>
>>>>     // Plot a simple two-point graph
>>>>     plot2d([0, 1], [0, 1])
>>>>     ax = gca()
>>>>
>>>>     // Colect plotted data
>>>>     a = ax.children(1).children.data
>>>>
>>>>     // Plot a simple two-point graph
>>>>     plot2d([0, 1],[0.5, 1.5])
>>>>
>>>>     // Colect plotted data corresponding to index 1
>>>>     b = ax.children(1).children.data
>>>>
>>>>     // Colect plotted data corresponding to index 2
>>>>     c = ax.children(2).children.data
>>>>
>>>>     After the first plot we get
>>>>
>>>>     a  =
>>>>        0.   0.
>>>>        1.   1.
>>>>
>>>>     After the second plot we get
>>>>
>>>>     b  =
>>>>        0.   0.5
>>>>        1.   1.5
>>>>
>>>>     c  =
>>>>
>>>>        0.   0.
>>>>        1.   1.
>>>>
>>>>     I would expect that b = a, i.e, once a children object has been
>>>>     created on the axes, it would be reasonable that its index were
>>>>     kept constant. The current behavior is as if each new object
>>>>     were inserted in the structure before the previous one instead
>>>>     of after it.
>>>
>>>     I would say that the set of children is a stack, i.e. each new
>>>     child is "pushed" on top. Anyway, relying on child order seems,
>>>     to me, a bad idea. For example, legend takes as (optional) first
>>>     argument an array of handles, and not an array of child numbers.
>>>
>>>     S.
>>>
>>>>
>>>>     Regards,
>>>>
>>>>     Federico Miyara
>>>>
>>>>
>>>>     <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>>>>     	Libre de virus. www.avast.com
>>>>     <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
>>>>
>>>>
>>>>     <#m_-570024488477070350_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>
>>>>     _______________________________________________
>>>>     users mailing list
>>>>     users at lists.scilab.org  <mailto:users at lists.scilab.org>
>>>>     https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users  <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users>
>>>
>>>
>>>     _______________________________________________
>>>     users mailing list
>>>     users at lists.scilab.org  <mailto:users at lists.scilab.org>
>>>     http://lists.scilab.org/mailman/listinfo/users  <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users>
>>
>>
>>     _______________________________________________
>>     users mailing list
>>     users at lists.scilab.org  <mailto:users at lists.scilab.org>
>>     https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
>     _______________________________________________
>     users mailing list
>     users at lists.scilab.org <mailto:users at lists.scilab.org>
>     http://lists.scilab.org/mailman/listinfo/users
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users


-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

  Antoine Monmayrant LAAS - CNRS
  7 avenue du Colonel Roche
  BP 54200
  31031 TOULOUSE Cedex 4
  FRANCE

  Tel:+33 5 61 33 64 59
  
  email : antoine.monmayrant at laas.fr
  permanent email : antoine.monmayrant at polytechnique.org

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20190409/89bc8aa1/attachment.htm>


More information about the users mailing list