Le générateur de graphiques ne se met pas à l'échelle automatiquementBonjour,
Je lance un générateur de graphiques et un filtre de données à partir d'un tableau de bord. Le graphique est la date sur l'axe des x et compte sur l'axe des y. Lorsque je filtre la date, les données en dehors de la plage de dates disparaissent du graphique, mais le graphique ne met pas automatiquement à l'échelle l'axe des x pour correspondre aux dates dans la plage filtrée (au lieu de cela, la plage de dates de l'axe des x est la même qu'avant le filtrage du plage de dates).
Je sais que je peux ouvrir la table de données, puis accéder aux propriétés de la colonne, puis à l'axe, puis supprimer le min et le max, puis cela fonctionne, mais j'ai besoin que la mise à l'échelle automatique se produise automatiquement.
Le script du générateur de graphes ressemble à ceci :
SPC = Ouvrir("C:\blahblahblah.csv",invisible);
colonne(SPC,"blah")<
colonne(SPC,"blah2")<
plot_box=vlistbox(
SPC << Générateur de graphiques(
Taille (1372, 867),
Afficher le panneau de configuration ( 0 ),
Recalcul automatique( 1 ),
Étirement automatique ( 0 ),
Variables( X( :Date time run ), Y( :blah ), Y( :blah2 ), Overlay( :blah3 ) ),
Éléments(
Position( 1, 1 ),
Points( X, Y, Légende( 1 ), Jitter( 1 ) ),
),
Éléments(
Position( 1, 2 ),
Points( X, Y, Legend( 4 ), Jitter( 1 ) ),
),
EnvoyerVersRapport(
Expédition(
{},
"Date d'exécution",
ScaleBox,
{Intervalle( "Jour" ),
Inc( 3 ), Tiques mineures( 1 ),
(puis un tas de lignes de référence)
...
Quelqu'un pourrait-il me conseiller s'il vous plaît?
Merci .
Re : Le générateur de graphiques ne se met pas automatiquement à l'échelleSalut, la seule façon dont j'ai trouvé que Graph Builder conserverait les paramètres de date de l'axe X que je veux et autoriserait la mise à l'échelle avec ces paramètres lors du filtrage est de changer la date en type de données "ordinal"
Re : Le générateur de graphiques ne se met pas automatiquement à l'échelleJe vois un comportement de redimensionnement similaire dans JMP 14, en utilisant des lignes de référence sur l'axe des x. En d'autres termes, il semble que JMP essaie de conserver le script ou les lignes de référence.Voici un exemple de spécification de lignes de référence via JSL.
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 3092688000 ), Max( 3284668800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 ),
Add Ref Line( Informat("06Mar2003", "ddmonyyyy"), "Solid", "Gray", "", 1 ),
Add Ref Line( Informat("16Jul2006", "ddmonyyyy"), "Solid", "Black", "", 1 )}
)Si vous publiez une maquette sur la façon dont vous ajoutez les lignes de référence, je peux montrer un script pour ajouter une boîte à boutons pour forcer la mise à l'échelle. Je ne pourrai pas le tester, puisque je n'ai pas JMP 11, mais je pense que cela fonctionnera.
Re : Le générateur de graphiques ne se met pas automatiquement à l'échelleMerci pour votre réponse.
Étrangement, lorsque j'effectue des échelles de verrouillage et des échelles de déverrouillage, les dates ne sont pas mises à l'échelle pour les plages de dates en dehors de mes lignes de référence (si j'essaie de sélectionner une plage de dates qui n'inclut aucune ligne de référence, la date (axe des x) ne pas d'échelle, mais les données en dehors de cette plage sont exclues ; si je sélectionne une plage de dates qui se trouve dans le groupe de lignes de référence, les dates (axe des x) seront mises à l'échelle). J'ai JMP 11; c'est peut-être un bug de cette version ? Ou peut-être n'aurais-je pas dû coder dans mes lignes de référence ? Je ne sais pas comment tracer des lignes de référence le long de l'axe des x cependant ...
Re : Le générateur de graphiques ne se met pas automatiquement à l'échelleJe vois le même comportement sur GraphBuilder.J'ai remarqué l'option Verrouiller les échelles sur GraphBuilder. Cependant, si je spécifie Verrouiller les échelles (0) lors de la création de GraphBuilder, l'axe des x ne se redimensionne toujours pas.Si après la création du GraphBuilder vous activez Verrouiller les échelles et désactivez-le, l'axe sera mis à l'échelle, mais il n'aura pas de formatage d'axe personnalisé. L'exemple ci-dessous utilise yyyyQq. Le script ci-dessous s'exécutera dans JMP 12, 13 et 14.
Si vous avez JMP 14, supprimez le /* à la ligne 52 et exécutez le script.Dans JMP 14, il existe Data Filter Handler, un script qui s'exécute lorsque le filtre est modifié. Donc, si vous avez un format d'axe spécial, vous pouvez le spécifier dans le gestionnaire.
Verrouiller Scales(0) dans la fonction d'appel de GraphBuilder ne semble pas fonctionner comme décrit. Mais l'activation et la désactivation semblent fonctionner.
Names Default to Here(1);
dt = Open("$sample_data/Australian Tourism.jmp");
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Lock Scales(0),
Variables(
X( :Date ),
Y( :Name( "Revenue ($'000)" ) ),
Y( :Name( "Bed occupancy rate (%)" ) ),
Y( :Name( "Average length of stay (days)" ) )
),
Elements(
Position( 1, 1 ),
Points( X, Y, Legend( 4 ) ),
Smoother( X, Y, Legend( 3 ) )
),
Elements(
Position( 1, 2 ),
Points( X, Y, Legend( 1 ) ),
Smoother( X, Y, Legend( 2 ) )
),
Elements(
Position( 1, 3 ),
Points( X, Y, Legend( 6 ) ),
Smoother( X, Y, Legend( 5 ) )
),
SendToReport(
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 2953282344.82759 ), Max( 3408220800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Tourism Trends" )} )
)
);
filter = gb << Local Data Filter(
Add Filter(
columns( :Year )
)
);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
/*
f = function({a},
print(a);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
gb << Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
);
);
rs = filter << Make Filter Change Handler( f );