Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Dans le graphique généré par le script ci-dessous, je voudrais changer la couleur des lignes indiquées par les flèches rouges (« les lignes de séparation ») en violet. Je voudrais également ajouter une ligne de référence horizontale uniquement pour la variable la plus basse de l'axe y (dans ce cas PNP1).
Comment faire cela via JSL ?
(Notez que dans mon cas actuel, les données de l'axe y ne proviennent pas d'une colonne contrairement à cet exemple de cas)
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
Graph Builder(
Size( 960, 695 ),
Variables(
X( :SITE ),
X( :lot_id, Position( 1 ) ),
X( :wafer, Position( 1 ) ),
Y( :NPN1 ),
Y( :NPN2 ),
Y( :PNP3 ),
Y( :PNP1 )
),
Elements( Position( 1, 1 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 44 ) ) ),
Elements( Position( 1, 2 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 43 ) ) ),
Elements( Position( 1, 3 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 38 ) ) ),
Elements( Position( 1, 4 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 40 ) ) ),
SendToReport(
Dispatch(
{},
"SITE",
ScaleBox,
{Label Row( 3, {Major Grid Line Color( 8 ), Show Major Grid( 1 )} )}
)
)
);
Automatisation et scriptsles fenêtresRe : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?bonne idée de lier les lignes verticales et les étiquettes des axes via la couleur 
Malheureusement, les lignes sont si fines qu'il est difficile de remarquer cette fonctionnalité.
Si vous ressentez le même sentiment, merci de soutenir ce souhait :
paramètres graphiques optimisés pour les catégories X hiérarchiques - 2 options

Vous pouvez également utiliser le site en tant que groupe X - mais vous rencontrerez très probablement un problème avec les étiquettes synchronisées de l'axe X.
Il existe également un souhait de résoudre ce problème :
Groupe X : restreindre les valeurs sur l'axe au groupe respectif
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt << Graph Builder(
Size( 841, 485 ),
Show Control Panel( 0 ),
Show Title( 0 ),
Show X Axis Title( 0 ),
Variables(
X( :SITE ),
X( :lot_id, Position( 1 ) ),
X( :wafer, Position( 1 ) ),
Y( :NPN1 ),
Y( :NPN2 ),
Y( :PNP3 ),
Y( :PNP1 )
),
Elements( Position( 1, 1 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 44 ) ) ),
Elements( Position( 1, 2 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 43 ) ) ),
Elements( Position( 1, 3 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 38 ) ) ),
Elements( Position( 1, 4 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 40 ) ) ),
SendToReport(
Dispatch( {}, "SITE", ScaleBox,
{Label Row(
1,
{Lower Frame( 1 ), Row Title Side( "Start" ), Show Major Grid( 0 ),
Tick Mark Style( "Long Divider" )}
), Label Row(
2,
{Lower Frame( 1 ), Row Title Side( "Start" ), Show Major Grid( 0 ),
Tick Mark Style( "Long Divider" )}
), Label Row(
3,
{Line Color( "Purple" ), Lower Frame( 1 ), Major Grid Line Color( "Purple" ),
Row Title Side( "Start" ), Tick Mark Style( "Long Divider" )}
)}
),
Dispatch( {}, "PNP1", ScaleBox, {Add Ref Line( 300, "Solid", "Black", "", 5 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 4 ), {Reference Line Order( 3 )} )
)
)
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?que veux-tu dire par
@Néo a écrit:(Notez que dans mon cas actuel, les données de l'axe y ne proviennent pas d'une colonne contrairement à cet exemple de cas)
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?@hogi
>> (Notez que dans mon cas actuel, les données de l'axe y ne proviennent pas d'une colonne contrairement à cet exemple de cas)
Dans mon cas actuel, les paramètres de l'axe Y proviennent de la sélection par filtre de données local des paramètres de ligne.
(S'il s'agissait d'une colonne, j'aurais pu définir une limite dans les spécifications pour la ligne de référence (non pas que j'aie essayé cela, mais je m'attends à ce que cela fonctionne))
Laissez-moi voir si je peux préparer un ensemble de données pour une démonstration (je reviendrai
).
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Salut @Néo ,
Le code qui @hogi publié résoudra votre problème pour obtenir une ligne de référence pour une seule sous-intrigue dans votre générateur de graphiques, mais malheureusement, en regardant la structure arborescente, je ne vois pas de moyen d'envoyer une commande qui modifierait uniquement cette ligne du x- axe. Dans l'arborescence, l'ensemble de l'axe des x est regroupé dans un seul élément AxisBox(1), il n'est pas divisé ni imbriqué, même s'il est affiché de cette façon dans le générateur de graphiques. Je n'ai également rien trouvé dans les préférences qui vous permette de modifier les lignes d'axes imbriqués.
Vous pouvez toujours cliquer avec le bouton droit sur un axe que vous souhaitez avoir, puis ajouter une ligne de référence, puis accéder au bouton rouge à côté du générateur de graphiques et enregistrer le script dans la fenêtre de script, et vous pourrez voir comment le script est modifié par le ajout de la ligne.
J'espère que cela t'aides!,
DS
Edit : Cela vaut peut-être la peine de soumettre une demande pour pouvoir changer les couleurs des axes imbriqués. Cela devrait être réalisable et j’imagine que beaucoup de gens pourraient en bénéficier.
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Quelle ligne pose problème ?
Pour le moment, il n’y a qu’une seule ligne horizontale dans la parcelle la plus basse.
Si vous devez masquer des parties de lignes de référence, vous pouvez utiliser le fait que chaque sous-tracé possède ses propres paramètres de personnalisation, afin de pouvoir ajouter des rectangles et les placer devant la ligne de référence.
[vous pouvez également utiliser directement le script de personnalisation pour ajouter un segment de ligne.]

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt << Graph Builder(
Show Control Panel( 0 ),
Show Title( 0 ),
Show X Axis Title( 0 ),
Variables(
X( :SITE ),
X( :lot_id, Position( 1 ) ),
X( :wafer, Position( 1 ) ),
Y( :NPN1 ),
Y( :NPN2 ),
Y( :PNP3 ),
Y( :PNP1 )
),
Elements( Position( 1, 1 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 44 ) ) ),
Elements( Position( 1, 2 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 43 ) ) ),
Elements( Position( 1, 3 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 38 ) ) ),
Elements( Position( 1, 4 ), Points( X( 1 ), X( 2 ), X( 3 ), Y, Legend( 40 ) ) ),
SendToReport(
Dispatch( {}, "SITE", ScaleBox,
{Add Ref Line( 714.422378299564, "Solid", "Red", "", 4 ),
Label Row(
1,
{Lower Frame( 1 ), Row Title Side( "Start" ), Show Major Grid( 0 ),
Tick Mark Style( "Long Divider" )}
), Label Row(
2,
{Lower Frame( 1 ), Row Title Side( "Start" ), Show Major Grid( 0 ),
Tick Mark Style( "Long Divider" )}
), Label Row(
3,
{Line Color( "Purple" ), Line Width( 3 ), Lower Frame( 1 ),
Major Grid Line Color( "Purple" ), Row Title Side( "Start" ),
Tick Mark Style( "Long Divider" )}
)}
),
Dispatch( {}, "PNP3", ScaleBox, {Add Ref Line( 135, "Solid", "Red", "", 3 )} ),
Dispatch( {}, "PNP1", ScaleBox, {Add Ref Line( 300, "Solid", "Black", "", 5 )} ),
Dispatch( {}, "400", ScaleBox,
{Legend Model( 38, Properties( 0, {Transparency( 0.5 )}, Item ID( "PNP3", 1 ) ) )}
),
Dispatch( {}, "Graph Builder", FrameBox,
{Grid Line Order( 2 ), Reference Line Order( 1 ),
Add Graphics Script(
2,
Description( "" ),
Fill Color( white );
Rect( -10000, 10000, 10000, -10000, 1 );
)}
),
Dispatch( {}, "Graph Builder", FrameBox( 2 ),
{Grid Line Order( 2 ), Reference Line Order( 1 ),
Add Graphics Script(
2,
Description( "" ),
Fill Color( white );
Rect( -10000, 10000, 10000, -10000, 1 );
)}
),
Dispatch( {}, "Graph Builder", FrameBox( 3 ),
{Grid Line Order( 2 ), Reference Line Order( 1 ),
Add Graphics Script(
2,
Description( "" ),
Fill Color( white );
Rect( 290, 10000, 10000, -10000, 1 );
)}
),
Dispatch( {}, "Graph Builder", FrameBox( 4 ), {Reference Line Order( 3 )} )
)
)
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?@hogi @SDF1 Vous trouverez ci-joint un tableau de données préparé (avec un script de tracé à l'intérieur) similaire à mes données réelles. Je souhaite qu'une ligne de référence (rouge ci-dessous) apparaisse uniquement lorsque l'étape de test 3 est sélectionnée dans le filtre de données local.
(l'emplacement y de la ligne de référence est prédéfini)

Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?@SDF1

Cela ajoute des lignes de référence à toutes les sous-intrigues, ce qui n'est pas ce que je veux.
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?C'est le cas simple où, en raison du groupe Y, les graphiques sont divisés en différentes FrameBox. Ensuite, vous pouvez simplement ajouter des lignes de référence individuelles via Personnaliser.

Graph Builder(
Y Group Edge( "Left" ),
Variables( X( :PartNumber ), Y( :Median ), Group Y( :TestStage ) ),
Elements( Points( X, Y, Legend( 33 ) ), Smoother( X, Y, Legend( 34 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox( 3 ),
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Pen Size( 3 );
Y Function( 0.4, x );
)}
)
)
)Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Salut @Néo ,
je ferais comme @hogi suggéré et utilisez l'option Personnaliser lorsque vous faites un clic droit sur le graphique qui vous intéresse, cliquez sur le "+" pour ajouter un nouveau script à GB, puis tapez le JSL pour ajouter une ligne.



Maintenant, pour que cela réponde dynamiquement au filtre de données local, je pense que ce serait plus difficile. Si vous avez besoin de ce type de fonctionnalité, je générerais plutôt ma propre fenêtre de rapport dans laquelle est intégré un générateur de graphiques, puis j'utiliserais peut-être des cases à cocher pour donner à l'utilisateur la possibilité de mettre à jour les sous-tracés avec des lignes de référence lorsqu'il sélectionne les différentes cases à cocher TestStage.
J'ai également trouvé un moyen de changer la couleur des lignes imbriquées. Je ne sais pas si c'est la "bonne" façon de le faire, ou même si c'est le moyen le plus rapide, mais si vous faites un clic droit sur l'axe imbriqué puis sélectionnez Afficher les propriétés, si vous cliquez sur l'axe imbriqué puis cliquez le bouton rouge à côté d'AxisBox, sélectionnez Copier les paramètres de l'axe, vous pouvez ensuite le coller dans une fenêtre de script et le modifier. Sélectionnez l'axe qui vous intéresse et modifiez la couleur de la ligne de "Aucun" à la couleur de votre choix. Vous devez ensuite copier ce code modifié, revenir au bouton rouge, sélectionner Coller les paramètres de l'axe, et cela mettra à jour le graphique. Cela fera le travail, mais je ne suis pas sûr de savoir comment cela peut être fait de manière dynamique.



En enregistrant le script correspondant dans une fenêtre de script, vous pouvez voir les commandes dont vous avez besoin pour envoyer le Graph Builder et la Label Row afin d'obtenir le résultat souhaité.
Graph Builder(
Size( 592, 526 ),
Y Group Edge( "Left" ),
Graph Spacing( 4 ),
Variables(
X( :TestStage ),
X( :TestParameter, Position( 1 ) ),
Y( :Median ),
Group Y( :TestStage )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 33 ) ),
Smoother( X( 1 ), X( 2 ), Y, Legend( 34 ) )
),
Local Data Filter(
Conditional,
Add Filter( columns( :TestStage ), Where( :TestStage == {1, 2, 3} ) )
),
SendToReport(
Dispatch(
{},
"TestStage",
ScaleBox,
{Label Row( 2, Line Color( "Purple" ) )}
),
Dispatch(
{},
"Graph Builder",
FrameBox( 3 ),
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Pen Size( 3 );
Y Function( 0.3, x );
)}
)
)
);En utilisant ces informations et en revenant à votre message d'origine en utilisant le fichier Semiconductor Capability.jmp, vous pouvez obtenir ce que vous demandiez initialement, l'axe imbriqué est violet, les lignes de grille verticales sont violettes et il y a une ligne de référence uniquement pour le graphique le plus bas. Dans ce cas particulier, double-cliquez sur l'axe auquel vous souhaitez ajouter la ligne de référence fonctionnera car vous tracez différentes colonnes dans les sous-tracés du générateur de graphiques. Pour l'exemple de table de données que vous avez partagé, vous devez procéder dans l'autre sens avec Personnaliser et en ajoutant une fonction Y().

Voici le code JSL qui a généré le graphique ci-dessus. Vous pouvez voir où vous devez apporter les modifications appropriées à votre cas spécifique.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
dt<<GRAPH builder=""></GRAPH>
J'espère que cela t'aides!,
DS
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?vous pouvez calculer la moyenne à partir des valeurs elles-mêmes :
Graph Builder(
Y Group Edge( "Left" ),
Variables( X( :PartNumber ), Y( :Median ), Group Y( :TestStage ) ),
Elements( Points( X, Y, Legend( 33 ) ), Smoother( X, Y, Legend( 34 ) ) )
);
myFB = Current Report()[FrameBox( 3 )];
myFB << Add Graphics Script(
2,
Description( "" ),
<STRONG> mySeg = myFB << Find Seg( Marker Seg( 1 ) );
value = Mean( mySeg << Get Y Values );</STRONG>
Pen Color( "red" );
Pen Size( 3 );
Y Function( value, x );
);
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?@SDF1 Merci. Je vais vérifier comment vous avez réussi à changer la couleur de l'axe imbriqué en violet. Pendant ce temps j'utilisais @hogi suggestion et Make Filter Change Handler () pour modifier dynamiquement l'endroit où JMP place la ligne de référence lorsque l'utilisateur modifie les sélections de filtre. Je n'ai pas encore résolu deux problèmes avec cela.
1. Le gestionnaire de changement de filtre ne se déclenche pas lorsque le graphique est tracé pour la première fois, mais uniquement lorsque le TestStage suivant est sélectionné.
2. Lorsque le filtre est modifié, la ligne de référence précédente reste sur une étape de test différente, ce que je comprends pourquoi, mais je n'ai pas encore pu la supprimer.
Names Default To Here (1);
clear log ();
gb = Graph Builder(
Y Group Edge( "Left" ),
Variables( X( :PartNumber ), Y( :Median ), Group Y( :TestStage ) ),
Elements( Points( X, Y, Legend( 33 ) ), Smoother( X, Y, Legend( 34 ) ) ),
Local Data Filter(
Conditional,
Add Filter( columns( :TestStage ), Where( :TestStage == {1} ) )
)
);
ldf = Current Report()["Local Data Filter"] << get scriptable object;
getTestStage = Function( {this}, //print (this);
testStateFiltered = Associative Array(:TestStage [ldf << get filtered rows]) << get keys;
gb << SendToReport(
Dispatch({},"Graph Builder",
FrameBox(N Items (testStateFiltered)), {Add Graphics Script( 2, Description( "" ), Pen Color( "red" ); Line Style ("dashed"); Pen Size( 0.25 );
Y Function( 0.2, x );
)}
)
);
show (N Items (testStateFiltered)); Print(testStateFiltered);
);
rs = ldf << Make Filter Change Handler( getTestStage() ); Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Au fait, il y a une nouvelle fonctionnalité dans Jmp17 :
ajouter des lignes de référence dynamiques basées sur des valeurs statistiques
Graph Builder(
Y Group Edge( "Left" ),
Summary Statistic( "Median" ),
Variables( X( :PartNumber ), Y( :Median ), Group Y( :TestStage ) ),
Elements(
Points( X, Y, Legend( 33 ) ),
Smoother( X, Y, Legend( 34 ) ),
Caption Box(
X,
Y,
<STRONG> Summary Statistic( "Median" ),
Location( "Axis Reference Line" )</STRONG>
)
),
Local Data Filter(
Conditional,
Add Filter( columns( :TestStage ), Where( :TestStage == 1 ) )
)
)
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?Salut @Néo ,
C'est une très bonne idée ça @hogi a en ce qui concerne l'utilisation d'un gestionnaire de changement de filtre. Je n'y avais pas pensé. J'ai modifié votre code ci-dessus pour résoudre les deux problèmes que vous rencontriez. Le script va maintenant créer le premier graphique avec la ligne de référence, puis mettre à jour chaque graphique en conséquence, même si vous choisissez plusieurs filtres de données. Est-ce que cela résout le problème ?
Names Default To Here( 1 );
dt = Current Data Table();
//this creates a string list of the column names
ColNamesList = dt << Get Column Names( "string" );
//This tests if the there exist a :Mean Column. If not, it runs a summary to generate this data, updates the main table with the means and then deletes a column and closes out the summary table.
If( Contains( ColNamesList, "Mean" ) == 0,
dtMeans = dt << Summary(
Group( :TestParameter ),
Mean( :Median ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "stat" ),
Link to original data table( 0 ),
output table name( "MeanStats" )
);
dt << Update( With( dtMeans ), Match Columns( :TestParameter = :TestParameter ) );
dt << Delete Columns( :N Rows );
Close( dtMeans, NoSave );
);
//this makes the original graph with the reference line of the first row in column :Mean
gb = dt << Graph Builder(
Y Group Edge( "Left" ),
Variables( X( :PartNumber ), Y( :Median ), Group Y( :TestStage ) ),
Elements( Points( X, Y, Legend( 33 ) ), Smoother( X, Y, Legend( 34 ) ) ),
Dispatch(
{},
"Graph Builder",
FrameBox( N Items( testStateFiltered ) ),
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Line Style( "dashed" );
Pen Size( 0.25 );
Y Function( Eval( :Mean[1] ), x );
)}
),
Local Data Filter( Conditional, Add Filter( columns( :TestStage ), Where( :TestStage == 1 ) ) )//no {} around the 1 here.
);
ldf = Current Report()["Local Data Filter"] << get scriptable object;
getTestStage = Function( {this}, //print (this);
testStateFiltered = Associative Array( :TestStage[ldf << get filtered rows] ) << get keys;
//this finds which row to grab the mean from
mrows = dt << Get Rows where( :TestStage == testStateFiltered[1] );
//this defines the mean to Eval() in the Y Function()
gbmean = :Mean[mrows[1]];
If( N Items( testStateFiltered ) == 1, //only does this if only one data filter is selected
gbreport = gb << Report; //makes a report reference for the graph builder
fb = gbreport[GraphBuilderComponentBox( 17 )];//accesses the frame to remove the script from
fb << Remove Graphics Script( 1 );//removes most recent script from the frame
);
gb << SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox( N Items( testStateFiltered ) ),
{Add Graphics Script(
2,
Description( "" ),
Pen Color( "red" );
Line Style( "dashed" );
Pen Size( 0.25 );
Y Function( Eval( GBMean ), x );
)}
)
);
Show( N Items( testStateFiltered ) );
Print( testStateFiltered );
);
rs = ldf << Make Filter Change Handler( getTestStage() );
J'espère que cela t'aides!,
DS
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?la première fois, tu peux courir getTestStage(1) manuellement.
Veuillez noter qu'avec le filtre de données, il y a 1 à 3 FrameBox dans GraphBuilder (la plupart du temps, juste 1 ?). Donc, soit vous déterminez à quel FB envoyer le message, soit sélectionnez simplement un TestStage et envoyez toujours la commande à Framebox 1.
Re : Comment (1) changer la couleur par défaut dans AxisBox et (2) ajouter une ligne de référence dans une seule variable de l'axe Y dans les tracés Y groupés ?@SDF1 @hogi
Le tableau de données que j'ai partagé a été rapidement constitué à titre d'exemple. J'aurais dû mentionner que je ne peux pas utiliser LSL/USL ou tout autre numéro dans ce tableau pour générer la ligne de référence.
Quoi qu'il en soit, ce qui suit a fonctionné pour moi.
- Appel getTestStage(1) avant l’appel du gestionnaire Make Filter Change.
- Ajout de RemoveGraphicsScript (N) avec les poignées appropriées dans la fonction getTestStage où N est le numéro FrameBox obtenu à partir du dernier numéro TestStage Framebox sélectionné généré lorsque le filtre TestStage est modifié.
Je vais me contenter de ça maintenant. Cependant, il reste un problème. Si je sélectionne un TestStage, puis un deuxième puis un troisième, tout fonctionne comme prévu, mais si je reviens de 3 sélections à une, mon script ne fonctionne pas comme prévu.
Lorsque j'en aurai l'occasion, je publierai un ensemble de données représentatif avec le script expliquant le problème.