[Users-fr] newaxes et subplot

Samuel Gougeon sgougeon at free.fr
Jeu 8 Juil 19:28:04 CEST 2021


Le 08/07/2021 à 17:06, CHEZE David 227480 a écrit :
>
> Bonjour Samuel,
>
> Merci de signaler cette évolution, cela simplifie effectivement les 
> subplot en lien avec uicontrol frame.
>
> Dans mon cas, le besoin initial est de pouvoir faire (aussi simplement 
> que possible dans l’idéal) des graphiques avec plusieurs axes (avec 
> newaxes ) dans chaque vignette subplot sans avoir à passer 
> explicitement par la création d’un quadrillage uicontrol. En gros il 
> faudrait que newaxes() par défaut récupère un ‘handle’ h correspondant 
> au dernier appel à h=subplot(mnp) et s’inscrive dans ce cadre 
> (h=subplot(mnp) parent de newaxes que ce soit par défaut newaxes() ou 
> en donnant la possiblité à newaxes(subplot(mnp)) de récupérer une 
> indication sur  la parenté que l’on souhaite créer). Je ne m’étais 
> jamais intéressé de près aux uicontrol, cela permet de faire ce que je 
> veux mais cela reste lourd à écrire.
>
> David
>

Le "problème" est que lorsque subplot cible un carreau coïncidant avec 
un repère déjà existant, il rend celui-ci actif au lieu d'en définir un 
nouveau superposé. C'est évidemment délibéré. Mais ce comportement 
pourrait être modifié par une option subplot(i,j,k, "new"). En cas de 
superposition exacte détectée, le nouveau repère pourrait alors d'emblée 
être créé avec

  * .filled="off"
  * des marges identiques à celles du repère sous-jacent
  * des axes gradués positionnés de l'autre coté de ceux du repère
    sous-jacent.

Faire ces opérations à la main n'est pas très compliqué non plus :

clf  reset

subplot(2,2,4)
plot2d()
ax  =  gca();
ax2  =  newaxes();
set(ax2,"axes_bounds",ax.axes_bounds,"margins",ax.margins,"filled","off")
set(ax2,"x_location","top","y_location","right","axes_visible",["on"  "on"  "on"])
plot([0.1  0.9],[0.1  0.9],"r")

subplot(1,2,1)
plot2d()
ax  =  gca();
ax2  =  newaxes();
set(ax2,"axes_bounds",ax.axes_bounds,"margins",ax.margins,"filled","off")
set(ax2,"x_location","top","y_location","right","axes_visible",["on"  "on"  "on"])
plot([0.1  0.9],[0.1  0.9],"r")

En implémentant subplot(i,j,k, "new"), le code équivalent serait 
simplifié en
clf reset subplot(2,2,4) plot2d() subplot(2,2,4,"new") plot([0.1 
0.9],[0.1 0.9],"r") subplot(1,2,1) plot2d() subplot(1,2,1,"new") 
plot([0.1 0.9],[0.1 0.9],"r") Samuel


-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20210708/ad82d924/attachment.htm>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: epdohkihfpkdgkcl.png
Type: image/png
Taille: 26494 octets
Desc: non disponible
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20210708/ad82d924/attachment.png>


Plus d'informations sur la liste de diffusion users-fr