[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