Comment avoir un graphique prédéfini pour l'axe de mise à jour du générateur de graphiques lors de la réexécution ?Salut tout le monde,
Exécution de JMP/JMP Pro sur des machines Windows 11.
Je suis curieux de savoir comment contourner un type de problème très spécifique – et le faire automatiquement (pas manuellement).À titre d'exemple, j'utilise l'exemple de table de données Air.jmp pour montrer le problème en question. J'ai joint une copie des fichiers avec le script pour montrer le problème.
J'ai une table de données dans laquelle j'ajoute des données quotidiennement (parfois hebdomadairement) et j'ai un script intégré dans la table de données pour tracer les données par rapport à la date. Pour imiter cela, j'ai divisé la table de données Air.jmp en deux moitiés et créé le graphique du générateur de graphiques, puis j'ai concaténé le "nouveau" (la seconde moitié des données) à la première moitié de l'autre table et j'ai réexécuté le script.
Idéalement, j'aimerais obtenir une sortie dans laquelle l'axe X de la date du générateur de graphique est automatiquement mis à l'échelle à la date la plus récente, comme ceci :

Au lieu de cela, j'obtiens un graphique dans lequel il est mis à jour uniquement à la valeur du moment où j'ai enregistré la dernière version de ce script de création de graphique dans la table de données. Ainsi, le résultat ressemble à ceci :

Cela ne se produit pas lorsque vous tracez simplement les points de données et ne modifiez pas l'incrément de l'axe. L'incrément par défaut sur l'axe pour cet ensemble de données (la première moitié) est de 2 ans. Après avoir ajouté la seconde moitié des données et réexécuté le script dans la table de données, il réinitialise la valeur par défaut à 5 ans et représente toutes les données sous forme graphique.
Cependant, si vous modifiez l'incrément par défaut à 1 mois, par exemple, et enregistrez le script dans la table de données (première moitié), puis ajoutez les nouvelles données et réexécutez le script, les paramètres de l'axe restent identiques à ceux d'origine. script -- il n'est pas mis à jour pour inclure les nouvelles données. La grande différence dans le script réside dans la commande SendToReport :
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min( 1597574016 ), Max( 1925078400 ), Interval( "Month" ), Inc( 1 ),
Minor Ticks( 1 )}
)
)Dans cette commande, il existe les paramètres de date Min() et Max() qui sont modifiés par la plage de dates existante de la table de données d'origine. Je ne sais pas pourquoi cette limitation existe et n'est pas mise à jour pour refléter les nouvelles dates ajoutées à une table de données et le script est réexécuté.
Existe-t-il un moyen de contourner ce problème tout en conservant l'intervalle des mois et en imbriquant l'axe des x afin que les mois soient également regroupés en années ? Après avoir ajouté de nouvelles données à la table et réexécuté le script, j'aimerais que le nouveau graphique utilise les paramètres Min() et Max() de la dernière table de données, et non de l'original.
J'espère qu'il existe une solution simple à ce problème. Sinon, je pense que je vais faire une demande de liste de souhaits pour que cela soit modifié pour permettre aux entrées Min() et Max() de l'axe d'être mises à jour automatiquement par les valeurs actuelles dans la colonne appropriée du tableau de données.
Merci d'avance pour vos idées/commentaires !,
DS
Mélange et nettoyage des donnéesExploration et visualisation des donnéesPersonnalisation de masseRe : Comment avoir un graphique prédéfini pour l'axe de mise à jour du générateur de graphiques lors d'une nouvelle exécution ?Salut @jthi ,
Merci, c'est fait ! Je préfère utiliser les arguments Expr(Col Min( )) et Expr(Col Max( )) dans les arguments Min() et Max() pour le générateur de graphiques. Et, assez joliment, JMP fera le remplissage pour vous à chaque extrémité du graphique, qui doit être en quelque sorte adapté à la taille de l'échelle de temps de votre graphique, car il semble qu'avec cet ensemble de données, il remplisse 366 jours.
Merci pour la réponse rapide!,
DS
Re : Comment avoir un graphique prédéfini pour l'axe de mise à jour du générateur de graphiques lors d'une nouvelle exécution ?Je pense que si vous acceptez d'avoir des emplacements vides dans l'intrigue, vous pouvez simplement supprimer min et max du sendtoreport.
Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)

Ou une autre option consiste à les calculer avec un script, puis à les ajouter avec cela (et vous devrez peut-être encore effectuer une mise à l'échelle si JMP décide d'ajouter des valeurs vides).
Eval(EvalExpr(
Current Data Table() << Graph Builder(
Size(522, 456),
Show Control Panel(0),
Graph Spacing(4),
Variables(X(:date), Y(:Ozone Concentration)),
Elements(
Points(X, Y, Legend(3)),
Smoother(
X,
Y,
Legend(4),
Lambda(0.0000231899600250505),
Confidence of Fit(1)
)
),
SendToReport(
Dispatch(
{},
"date",
ScaleBox,
{Min(Expr(Col Min(:date))), Max(Col Max(col max(:date))), Interval("Month"), Inc(1),
Minor Ticks(1), Label Row Nesting(2)}
)
)
)
));
