J'ai un script qui utilise la plateforme bivariée pour produire un tracé de données sur des unités de temps discrètes (par exemple 202101 pour la 1ère semaine de 2021). Les unités de temps utilisées ne sont pas négociables et ne s'espacent pas correctement si elles sont traitées comme continues : la distance entre 202052 et 202101 ne sera pas la même que la distance entre 202101 et 202102, mais ces distances devraient être les mêmes car ce sont des semaines consécutives. Ma solution consistait à créer une colonne "Séquence" avec les valeurs 1,2,3,... et à la coupler avec 202052, 202101, 202102, .... et d'appliquer des étiquettes de valeur à la colonne "Séquence" (1 a une valeur l'étiquette 202052, 2 a l'étiquette de valeur 202101, 3 a l'étiquette de valeur 202102), puis utilisez la colonne "Séquence" comme X dans Ajuster Y par X. Cette solution fonctionne à merveille, sauf lorsque je journalise la sortie : l'étiquetage des valeurs ne tient pas et le tracé dans le journal revient aux valeurs d'origine dans la colonne Séquence au lieu d'utiliser les étiquettes de valeur. De temps en temps, les étiquettes de valeur sont transférées vers le journal, mais après avoir enregistré et rouvert, les valeurs de l'axe X sont revenues aux valeurs d'origine. Je crois que la différence réside dans l'utilisation d'un script ou de ctrl + J pour journaliser (étiquettes de valeur conservées temporairement) par rapport à copier -> coller dans le journal (étiquettes de valeur non conservées).
Je pourrai peut-être trouver une autre façon de procéder, ou peut-être que quelqu'un pourra suggérer une autre méthode, mais je suis plus intéressé de savoir si les étiquettes de valeur qui ne sont pas transférées d'une fenêtre de rapport vers un journal sont le comportement prévu de JMP. Ce comportement peut-il changer dans les futures versions de JMP ?
J'utilise JMP Pro 14.3.0. J'ai confirmé que le problème se produit également dans JMP Pro 15.2.1. Vous trouverez ci-dessous un exemple de script qui recrée le problème.
// Data Table
dt = New Table( "Label Example",
Add Rows( 6 ),
New Column( "Week", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [202052, 202052, 202101, 202101, 202102, 202102] ) ),
New Column( "Sequence", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2, 2, 3, 3] ) ),
New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [12, 39, 9, 1, 22, 9] ) ),
New Column( "Group", Character, "Nominal", Set Values( {"A", "B", "A", "B", "A", "B"} ) )
);
week_list = :Week << get values;
sequence_list = :Sequence << get values;
week_list_names = {};
// Build the Value Labels List
For( i = 1, i <= N Items( week_list ), i++,
If( !Contains( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) ),
Insert Into( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) )
)
);
:Sequence << Data Type( Character );
:Sequence << Value Labels( week_list_names );
:Sequence << Data Type( Numeric ) << Modeling Type( Continuous );
value_by_week = Bivariate(
Y( :Value ),
X( :Sequence ),
Fit Where( :Group == "A", Fit Each Value( {Line Color( {212, 73, 88} )} ) ),
Fit Where( :Group == "B", Fit Each Value( {Line Color( {66, 112, 221} )} ) ),
SendToReport(
Dispatch( {}, "Bivariate Fit of Value By Sequence", OutlineBox, {Set Title( "Bivariate Fit of Value By Sequence" )} ),
Dispatch( {}, "1", ScaleBox, {Inc( 1 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) ), Label Row( Label Orientation( "Angled" ) )} ),
Dispatch( {}, "2", ScaleBox, {Inc( 10 ), Minor Ticks( 5 ), Label Row( Show Major Grid( 1 ) )} ),
Dispatch( {}, "Sequence", TextEditBox, {Set Text( "Week" )} )
)
);
value_by_week_rep = value_by_week << Report;
my_jrn = New Window( "Test Journal", <<JOURNAL></JOURNAL>Vous pouvez choisir d'extraire les valeurs de l'année et de la semaine de votre colonne X et de les convertir en horodatage. Ensuite, si vous le lancez sur l'axe des x, il s'espacera automatiquement correctement et si vous jouez avec le formatage de l'axe des x, vous pouvez lui faire afficher les dates comme vous le souhaitez.
Intéressant! Je n'aurais jamais pensé à essayer ça, mais "réexécuter dans une nouvelle fenêtre" fonctionne aussi pour moi. Je suis heureux que le problème soit résolu dans JMP 16. Il s'agit d'une solution de contournement acceptable jusqu'à ce que je puisse l'installer. Merci pour le partage.
Salut @drew_baumgartel ,
Je vois le même comportement lors de l'utilisation de votre exemple de script.
Cependant, j'ai pu voir les étiquettes de valeur si vous accédez au triangle rouge et sélectionnez réexécuter dans une nouvelle fenêtre.
Rerun in new windowRerun in new windowRéexécuter dans une nouvelle fenêtre
results after rerunning in new windowresults after rerunning in new window résultats après réexécution dans une nouvelle fenêtre
acclamations,
Stan