Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/organiser en lignesSalut tout le monde,
J'espérais que quelqu'un pourrait m'aider à comprendre le code permettant de redimensionner la taille du panneau dans le générateur de graphiques.
Ceci provient de l'ensemble de données de grande classe :

Si je voulais définir une taille beaucoup plus grande en utilisant JSL (la fenêtre d'ajustement automatique est désactivée) sur quelque chose comme ceci :

comment pourrais-je y parvenir ?
La raison pour laquelle j'ai besoin de cette fonctionnalité est qu'actuellement, si vous utilisez un filtre pour la colonne "Page", les graphiques deviennent de plus en plus petits à mesure que vous avez de niveaux. Lorsque vous avez une tonne de niveaux, ils peuvent devenir si petits que vous ne pouvez même pas voir la poignée permettant de redimensionner les panneaux. Je dois donc sélectionner certains niveaux, redimensionner, sélectionner des niveaux supplémentaires, redimensionner, etc.... Très ennuyeux et supprime une partie de la génialité de cette nouvelle capacité de Graph Builder. D'un autre côté, si vous avez une tonne de niveaux dimensionnés au fur et à mesure que vous supprimez des niveaux dans le filtre, les graphiques deviennent de plus en plus grands.
Je veux donc pouvoir disposer d'une zone de saisie via JSL où je peux modifier le dimensionnement facilement et rapidement.
J'espère que cela a du sens et merci pour toutes les idées !
Steve
Automatisation et scriptsExploration et visualisation des donnéesRe : Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/Organiser en lignesMerci Jarmo! C'est vraiment proche mais cela ressemble à lorsque j'exécute cette section du code avec une nouvelle taille :
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);ce générateur de graphiques ne met pas à jour la taille des graphiques tant que je n'ai pas modifié les options de filtre. Existe-t-il un moyen de forcer la mise à jour de la taille du graphique sans qu'il soit nécessaire de modifier le filtre ?
Le plan est d'avoir une fenêtre flottante dans laquelle je peux saisir différentes tailles de cadre en fonction du nombre de niveaux que j'ai sélectionnés une fois la sélection terminée.
Merci pour toute contribution supplémentaire !
Re : Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/Organiser en lignesIl doit être déclenché d'une manière ou d'une autre, très probablement par un contrôle ou un gestionnaire (dans cet exemple, vous pouvez par exemple appeler la même fonction avant que le gestionnaire de filtre ne soit appliqué avec quelque chose comme f(0) )
Voir plus...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
change_frame_size = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
change_frame_size(0);
rs = ldf << Make Filter Change Handler(change_frame_size);
Vous trouverez ci-dessous le cas le plus simple où il est déclenché par une pression sur un bouton.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
Button Box("Update Frames",
(Report(window:gb) << XPath("//FrameBox")) << Frame Size(300, 300);
),
window:gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92))),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
)
)
)
);
Re : Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/Organiser en lignesJe ne sais pas s'il existe d'autres options que de contrôler cela par JSL, mais vous pouvez modifier la taille du cadre (s'il n'y en a pas, cela pourrait valoir la peine de créer un élément de liste de souhaits. "verrouiller la taille de la fenêtre" pour les filtres de données comme nous l'avons déjà fait avoir des "échelles de verrouillage")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(300, 300);
);
rs = ldf << Make Filter Change Handler(f);
Vous souhaiterez peut-être ajouter une sorte de « forçage de taille » au générateur de graphiques/à votre fenêtre afin que la fenêtre ne continue pas à se redimensionner.
Re : Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/Organiser en lignesCela fonctionne à merveille, merci !!
Re : Comment redimensionner la taille du panneau Graph Builder lors de l'utilisation de l'organisation Page/Organiser en lignesJe voulais ajouter là où je me suis retrouvé en fonction de votre code, donner une fenêtre flottante où je peux dimensionner les panneaux de manière interactive à mon goût :
//rev 5-5-24
Names Default To Here(1);
dt=current data table();
obj=current report()["Graph Builder"]<< get scriptable object;
obj1 = obj << Get Window Title;
s = Window(obj1)<< Get Window Size();
nw = New Window("Resize Graph Builder Page Panels",Show Menu( 0 ),Show Toolbars( 0 ),
V List Box(
h list box(
vlist box(
text box("frame Size Y"),
neb1=Number Edit Box( 250 );
),
vlistbox(
textbox("frame Size X"),
neb2=Number Edit Box( 350 );
)
),
Button Box("Update Frames",
Report(obj)<< Fit to Window("Off");
nebval1=neb1 << Get;
nebval2=neb2 << Get;
(Report(obj) << XPath("//FrameBox")) << Frame Size(nebval2, nebval1);
window(obj1) << Set Window Size( s );
),
)
);
nw << Size Window( 400, 200 );
window(obj) << On Close(window("Resize Graph Builder Page Panels")<<CLOSE window=""></CLOSE>