Script per l'impostazione di tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiPer accelerare un passaggio di un flusso di lavoro, sto cercando di scrivere uno script che imposti automaticamente i limiti dell'asse di tutti gli assi Y in un generatore di grafici su determinati valori (quantili) che possono essere calcolati dai dati visualizzati.
Il piano era:
- Ottieni le etichette degli assi
- Calcolare i limiti desiderati utilizzando le colonne corrispondenti nella tabella dati
- Imposta i limiti di conseguenza.
Ciò risulta essere più complicato del previsto in primo luogo, perché è possibile utilizzare un filtro dati locale, modificare le etichette, ecc.
Quindi preferirei ottenere i diversi valori Y per ciascun asse direttamente dal generatore di grafici. Come ottenere i valori da assi specifici?
Ad esempio, se ho
R = Current Report();
AB = R[axisbox(2)] ;
ab_min = -100; // How to access the value list containing all the values that are used by default to compute axis limits of AB here?
ab_max = 100;
AB << Min(ab_min);
AB << Max(ab_max);
Usando "la croce" sono finito con alcuni FrameBox, ma non sono riuscito a capire come ottenere valori da essi.
Qualche idea o modo migliore per farlo?
Grazie Robb
GraficaScriptingRi: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiQualcosa del genere funzionerebbe? Usa XPath per ottenere tutti gli assi e poi capire quali sono gli assi Y. Dopodiché dovresti essere in grado di manipolarli
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
axisboxes = Report(gb) << XPath("//AxisBox");
/*y-axis seems to be even numbers*/
yaxis = axisboxes[2::N Items(axisboxes)::2];
ymin = yaxis << get min;
ymax = yaxis << get max;
show(ymin, ymax);
Ri: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiIl seguente JSL restituirà un elenco di tutti gli AxisBox() per il report corrente.Sia AxisBox(1) che AxisBox(2).Quindi quello che si può fare è elaborare le voci, 2, 4, 6 ecc. per accedere a tutti gli AxisBox(2)
r=current report();
yMaxs = ((r[1]<<TOP parent=""></TOP>
Ri: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiCiao @jthi , Ciao @txnelson
grazie, ma credo che ci sia un piccolo malinteso.
Non voglio ottenere il minimo e il massimo correnti da tutti gli assi y. Vorrei ottenere tutti i corrispondenti valori y dei dati visualizzati per calcolare limiti più appropriati.
Ad esempio, se per l'asse y vengono visualizzati i valori 1000, vorrei ottenere un elenco o un vettore di quei valori 1000 y.
Ri: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiPerché non dovrebbe funzionare per te ottenere solo i valori dalla tabella dei dati?Se le righe sono state escluse dall'analisi o se è stato applicato un filtro dati locale, è necessario applicare solo tali condizioni.
names default to here(1);
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
allHeights = dt:height << get values;
// or if you want just the unique values of the column height, this
// is my prefered way to get them
uniqueHeights = associative array(dt:height<<GET values=""> </GET>
Ri: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiAttualmente non vedo un modo affidabile per ottenere il nome della colonna o della colonna tracciato su un asse dal generatore di grafici. L'unico modo che mi viene in mente è ottenere l'etichetta dell'asse, ma questo potrebbe essere stato modificato dall'utente in modo che il testo non sia più il nome della colonna. Inoltre, le colonne possono essere trasformate/modificate direttamente nel generatore di grafici. Se una tale colonna viene tracciata su un asse, non sarei in grado di trovare affatto quella colonna nella tabella dei dati. E sì, se trovassi la colonna corretta nella tabella dei dati, dovrei applicare le impostazioni del filtro dal filtro dati locale.
Se potessi in qualche modo recuperare i valori dei dati tracciati direttamente dal generatore di assi/grafi, non sarebbe importante quale tipo di colonna viene tracciata, quale filtro viene applicato, quali etichette l'utente ha modificato e cos'altro potrebbe andare storto e interrompere il mio script .
Ri: Script per impostare tutti i limiti degli assi in un generatore di grafici sui valori calcolati dai dati visualizzatiQualcosa del genere dovrebbe darti i valori dei marcatori
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
frame = Report(gb)[FrameBox(1)];
frames = Report(gb) << XPath("//FrameBox");
marker_segs = (frames << Find Seg(Marker Seg(1)));
xm = marker_segs << Get X Values;
ym = marker_segs << Get Y Values;
show(xm, ym);
esportazione dei valori x&y (coordinate) dal generatore di grafici una volta che jmp trova automaticamente i punti centroidi per un poligono
Come ottenere informazioni sulla casella della legenda, come il colore e il tipo di pennarello