Comment représenter graphiquement les N dernières valeurs d’une colonne ?Salut tout le monde,
Je suis encore relativement nouveau dans JSL, donc je construis mes codes de script au fur et à mesure.
J'essaie d'ajouter à une fenêtre de carte de contrôle le graphique des 25 derniers points de données dans une colonne de valeurs M, par exemple la colonne (M-25) à (M).
Je pense modifier le script du générateur de graphiques pour faire ceci :
Control Chart Builder(
Size( 534, 454 ),
Show Two Shewhart Charts( 0 ),
Show Control Panel( 0 ),
Show Limit Summaries( 0 ),
Show Capability( 0 ),
Variables( Y( :Name( "MyColumn" ) ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Moving Range" ) ),
Warnings( Test Beyond Limits( 1 ) )
),
SendToReport(
Dispatch(
{},
"graph display 1 title",
TextEditBox,
{Set Text( "Last 25 Observations" )}
),
Dispatch( {}, "MyColumn Limit Summaries", OutlineBox, {Close( 1 )} )
)
)Le problème que j'ai est de savoir comment choisir uniquement les N dernières valeurs à afficher (N pourrait être 25, 30 ou 100). Mon expérience avec d'autres langages de programmation comme Igor ou Matlab ne se traduit pas en JSL pour savoir comment représenter graphiquement un sous-ensemble de données à partir d'une colonne.
Si possible, je préférerais qu'il trace les données par rapport à l'index des lignes, comme dans les cartes de contrôle, et je sais que le tracé de superposition peut le faire, mais j'aime aussi que la moyenne apparaisse dans le graphique. Je préférerais NE PAS tracer les données sous la forme d'un ajustement Y par X.
Merci!
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Salut @Godwin ,
Chaque situation particulière est un peu différente et peut nécessiter une légère modification du code pour les spécificités concernées. Si vous pouvez partager une table de données et le code avec lequel vous travaillez, cela pourrait m'aider, ainsi que d'autres personnes sur ce fil, à mieux aborder les spécificités de ce que vous essayez de faire.
Merci!,
DS
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Pouvez-vous partager le code exact que vous avez utilisé pour contrôler la dernière colonne N de la carte, s'il vous plaît. Je n'ai pas de chance pour la modification.
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Merci!Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Names DefaultToHere(1);
// Open a table and give it a table reference ('dt')
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Select the data you do not want, and exclude them
dt << select where( :sex == "F" );
dt << hide and exclude;
// Clear the selections
dt << clear select;
// Create the chart, only none excluded/hidden rows will be displayed
dt << Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Merci! Je ne suis pas sûr d'avoir soumis ma question correctement. Je veux dessiner un graphique d'un ensemble de données volumineuses donné. Mais je dois vérifier qu'une colonne particulière satisfait si la condition, puis si la condition est satisfaite, considérez les lignes correspondantes pour tracer le graphique. Je voudrais le faire via un script jsl. Pourriez-vous m'aider car je suis très débutant. Merci!
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Cela semble être une question différente du sujet du fil, mais essayez peut-être quelque chose comme ceci :
Names DefaultToHere(1);
// Open a table and give it a table reference ('dt')
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Get a list of all the columns in the table
cols = dt << getColumnNames("String");
// Define any logical condition that identifies one or more columns by its name
targetCols = {};
for(c=1, c<=NItems(cols), c++, if(Contains(cols[c], "gh"), InsertInto(targetCols, cols[c])));
// Make a plot using'taregtCols' as the y variables
biv = dt << OneWay(X(:sex), Y(Eval(targetCols)));Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Bonjour Monsieur, je souhaite dessiner un graphique d'un ensemble de données volumineuses donné. Mais je dois vérifier qu'une colonne particulière satisfait à la condition, puis considérer les lignes correspondantes pour tracer le graphique. Je voudrais le faire via un script jsl. Pourriez-vous m'aider car je suis très débutant. Merci!Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Comment représenter graphiquement les données de la table de données avec une colonne particulière qui satisfait à la condition if ?Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Salut @txnelson , Merci pour la suggestion. J'ai fini par modifier légèrement le code pour qu'il recherche des entrées vides plutôt que des entrées non nulles. Votre méthode a fonctionné et j'avais juste besoin de l'adapter légèrement à ma situation spécifique.
Merci encore!
lastNmiss = 0;
For( ii = N Rows( dt ), ii >= 1, ii--,
If( IsMissing(dt:weight[ii])!=1, lastNmiss++ );
If( lastnmiss == 8, Break() );
);
lastNmiss = N Row( dt ) - ii;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - lastnmiss) )
);
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Voici une simple modification du script qui @Mark_Bailey a écrit, qui trouve la ligne qui contient le dernier nombre x de valeurs non nulles
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:weight[38] = 0;
last n = 0;
For( i = N Rows( dt ), i >= 1, i--,
If( :weight[i] > 0, last n++ );
If( last n == 5, Break() );
);
last n = N Row( dt ) - i;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - last n) )
);
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?@Mark_Bailey Merci pour l'aide.
Je cherche maintenant à essayer de modifier ce code pour qu'il représente graphiquement les N dernières valeurs non nulles. J'ai plusieurs lignes dans une colonne qui peuvent contenir des valeurs manquantes et je souhaite représenter graphiquement uniquement les lignes qui ont une entrée. À l'heure actuelle, s'il n'y a qu'une ou deux lignes dans le passé N (dans mon cas 25) qui sont différentes de zéro, alors il ne représente que ces une ou deux lignes.
Votre aide/commentaires est grandement appréciée. Merci!
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Travaillé! Merci.
J'ai dû modifier légèrement pour les détails, mais cela a fonctionné.
Re : Comment représenter graphiquement les N dernières valeurs d'une colonne ?Voici un exemple avec Bivariate et Big Class qui pourrait être adapté :
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
last n = 5;
n = N Row( dt );
biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Where( Row() > (n - last n) )
)
C'est simple.