Mise à l'échelle automatique correspondant aux axes X et YRésolu : Re : Tracer automatiquement les colonnes associées - Communauté d'utilisateurs JMP
Pour faire suite à la discussion ci-dessus, j'aimerais automatiser la mise à l'échelle de certains tracés pour qu'ils soient symétriques par rapport à la valeur zéro sur les axes X et Y.
j'aimerais avoir ça

automatiquement affiché comme ceci.

Le code qui m'a amené ici est inclus dans le lien ci-dessus
Au revoir
Tête de clé
Automatisation et scriptsRe : Mise à l'échelle automatique correspondant aux axes X et YUne option consiste à utiliser certaines matrices pour vérifier les lignes "valides", à obtenir uniquement les valeurs de celles-ci, puis à calculer le maximum comme auparavant.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
m1 = Column(dt, "height") << get values;
m2 = Column(dt, "weight") << get values;
valid_rows = Loc(V Sum(Is Missing(m1 || m2)`), 0);
val = Max(Abs(dt[valid_rows, "weight"] |/ dt[valid_rows, "height"]));Re : Mise à l'échelle automatique correspondant aux axes X et YMerci et vous avez raison avec ce que vous dites, je pense que je n'exprime pas correctement la question. Les valeurs manquantes dans X sont ignorées lors de la détermination du maximum de X. Les valeurs Y du partenaire sur la même ligne ne sont pas manquantes et ne sont donc pas ignorées. Je dois préciser que je parcours les colonnes d'un tableau de données et que je trace automatiquement les métriques connectées.
Ce script peut choisir un seuil de tension et le tracer par rapport à la valeur actuelle respective si celui-ci est sélectionné. Lorsque cela est redimensionné à la fin, une valeur manquante dans X par exemple entraînera l'absence de point de données sur le graphique. Cependant, la valeur Y du partenaire pourrait toujours définir l'échelle du graphique.
To ensure the plot contains the 100 value on both axed, I did modify the matrix to include 110 with |/110;
Au revoir
Clé à molette
dt = Current Data Table();
dt << Clear Column Selection();
colList = dt << get column names( string );
check_list = {"VTX", "VTN", "VTP", "VTF", "IDS", "IBB", "ILK", "CMI"};
New Window( "Select Variables",
<<TYPE></TYPE>Re : Mise à l'échelle automatique correspondant aux axes X et YComme vous connaissez les colonnes que vous utilisez, vous pouvez utiliser Col Min + Col Max pour obtenir les valeurs minimales et maximales (elles doivent respecter les codes de valeur manquante). Utilisez ensuite la combinaison de vos valeurs, la fonction Abs() et la fonction Max() pour obtenir votre valeur à utiliser pour les axes x et y.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
show(Col Max(Column(dt, "height")));
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
show(Col Max(Column(dt, "height")));
mais je pense aussi que Bivariate ne devrait pas du tout tracer ces points s'ils ont été ignorés par les codes de valeur manquante
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val1 = Max(Max(Abs(xs)), Max(Abs(ys)));
biv << close window;
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val2 = Max(Max(Abs(xs)), Max(Abs(ys)));
show(val1, val2);Re : Mise à l'échelle automatique correspondant aux axes X et YJ'ai beaucoup de codes d'erreur numériques pour conserver le type de données de la colonne. Je dois fermer les yeux sur ceux qui participent à l’analyse. Cependant, si X ou Y sont marqués d'un code de valeur manquant et que le partenaire ne l'est pas, les échelles peuvent être définies par des données qui ne sont pas réellement tracées sur le graphique.

Merci pour votre aide précieuse.
Au revoir
Tête de clé
Re : Mise à l'échelle automatique correspondant aux axes X et YQue signifie « marqué comme manquant » dans ce cas ?
Si vous souhaitez conserver l'autre valeur, je pense que cela devrait toujours fonctionner même si les matrices ont des valeurs manquantes.

Re : Mise à l'échelle automatique correspondant aux axes X et YIl y a une petite chose dont j’ai réalisé. Dans certains cas, l'une des matrices ys ou xs comporte des valeurs manquantes car un code de valeur manquante lui a été attribué. Les valeurs de la matrice partenaire ne peuvent pas manquer et peuvent être incluses pour définir les échelles. Existe-t-il un moyen d'éliminer les valeurs de ys si la ligne est marquée comme manquante pour xs, la même élimination de xs se produisant lorsque ys est une valeur manquante.
Au revoir
Tête de clé
Re : Mise à l'échelle automatique correspondant aux axes X et YÉpique! Fonctionne à merveille.
Re : Mise à l'échelle automatique correspondant aux axes X et YCalculer les valeurs maximales (des valeurs absolues), en prendre le négatif et définir les valeurs pourrait être une option. Vous pouvez également calculer les valeurs du tableau de données en utilisant Col Max() / Col Min() ou Summarize
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val = Max(Max(Abs(xs)), Max(Abs(ys)));
xaxis = Report(biv)[AxisBox(1)];
yaxis = Report(biv)[AxisBox(2)];
xaxis << Min(-1*val) << Max(val);
yaxis << Min(-1*val) << Max(val);