Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneBonjour à tous,
J'espérais que quelqu'un pourrait m'aider à comprendre le code pour redimensionner la taille du panneau dans le générateur de graphiques.
Ceci provient du grand ensemble de données de classe :

Si je voulais définir la taille pour qu'elle soit beaucoup plus grande en utilisant JSL (la fenêtre d'ajustement automatique est désactivée) à 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, cela peut devenir si petit que vous ne pouvez même pas voir la poignée pour redimensionner les panneaux. Je dois donc sélectionner certains niveaux, redimensionner, sélectionner d'autres niveaux, redimensionner, etc. C'est très ennuyeux et cela enlève une partie de l'incroyable fonctionnalité de cette nouvelle fonctionnalité de Graph Builder. D'un autre côté, si vous avez une tonne de niveaux dimensionnés correctement au fur et à mesure que vous supprimez des niveaux dans le filtre, les graphiques deviennent de plus en plus grands.
Je souhaite 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éesRé: Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneJe voulais ajouter où je me suis retrouvé en fonction de votre code, donner une fenêtre flottante où je peux dimensionner de manière interactive les panneaux à ma guise :
//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>Ré: Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneCela fonctionne à merveille, merci !!
Ré: Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneIl 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 la pression d'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))
)
)
)
)
);
Ré: Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneMerci Jarmo ! C'est très proche, mais il semble que 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 le graphique à mettre à jour la taille 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 !
Ré: Comment redimensionner la taille du panneau du générateur de graphiques lors de l'utilisation de l'organisation Page/Arrange en ligneJe 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 car nous avons déjà 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.