Le générateur de graphiques ne sera pas mis à 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 le 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 de la date). 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 graphiques ressemble à ceci :
SPC = Ouvert("C:\blahblahblah.csv",invisible);
column(SPC,"blah")<
column(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 d'exécution), 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, Légende( 4 ), Jitter( 1 ) ),
),
EnvoyerToReport(
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 s'adapte pas automatiquementBonjour, la seule façon dont j'ai trouvé que Graph Builder conserverait les paramètres de date de l'axe X que je souhaite et permettrait la redimensionnement 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 s'adapte pas automatiquementJe constate 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 de la façon dont vous ajoutez les lignes de référence, je peux montrer un script pour ajouter une boîte de boutons pour forcer la redimensionnement. Je ne pourrai pas le tester, puisque je n'ai pas JMP 11, mais je pense que ça fonctionnera.
Re : Le générateur de graphiques ne s'adapte pas automatiquementMerci pour votre réponse.
Étrangement, lorsque j'effectue le verrouillage des échelles et le déverrouillage des échelles, 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) le fait. 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 dans cette version ? Ou peut-être que je n'aurais pas dû coder 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...
Re : Le générateur de graphiques ne s'adapte pas automatiquementJe vois le même comportement sur GraphBuilder.J'ai remarqué l'option Verrouiller les balances sur GraphBuilder. Cependant, si je spécifie Lock Scales(0) lors de la création de GraphBuilder, l'axe des x n'est toujours pas redimensionné.Si après la création de GraphBuilder, vous activez Verrouiller les échelles et désactivez-le, l'axe sera mis à l'échelle, mais il n'aura aucun 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 disposez de 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 disposez d'un format d'axe spécial, vous pouvez le spécifier dans le gestionnaire.
Lock 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 );