Ridimensionamento automatico che abbina gli assi X e YRisolto: Ri: traccia automaticamente le colonne associate - Comunità degli utenti JMP
In seguito alla discussione precedente, vorrei automatizzare il ridimensionamento di alcuni grafici in modo che siano simmetrici rispetto al valore zero su entrambi gli assi X e Y.
Mi piacerebbe avere questo

emesso automaticamente come questo.

Il codice che mi ha portato qui è incluso nel collegamento sopra
Ciao
Testa di chiave
Automazione e scriptingRe: Ridimensionamento automatico degli assi X e YUn'opzione è utilizzare alcune matrici per verificare la presenza di righe "valide", ottenere valori solo da quelle e quindi calcolare il massimo come prima.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
m1 = Column(dt, "height") << get values;
m2 = Column(dt, "weight") << get values;
valid_rows = Loc(V Sum(Is Missing(m1 || m2)`), 0);
val = Max(Abs(dt[valid_rows, "weight"] |/ dt[valid_rows, "height"]));Re: Ridimensionamento automatico degli assi X e YGrazie e hai ragione con quello che dici, penso di non esprimere correttamente la domanda. I valori mancanti in X vengono ignorati quando si calcola il massimo di X. I valori Y del partner sulla stessa riga non mancano e quindi non vengono ignorati. Dovrei chiarire che sto scorrendo le colonne in una tabella di dati e tracciando automaticamente le metriche collegate.
Questo script potrebbe selezionare una soglia di tensione e tracciarla rispetto al rispettivo valore di corrente, se viene selezionato. Quando questo viene ridimensionato alla fine, un valore mancante in X, ad esempio, causerà l'assenza di punti dati sul grafico, tuttavia, il valore Y del partner potrebbe comunque impostare la scala del grafico.
To ensure the plot contains the 100 value on both axed, I did modify the matrix to include 110 with |/110;
Ciao
Testa di chiave
dt = Current Data Table();
dt << Clear Column Selection();
colList = dt << get column names( string );
check_list = {"VTX", "VTN", "VTP", "VTF", "IDS", "IBB", "ILK", "CMI"};
New Window( "Select Variables",
<<TYPE></TYPE>Re: Ridimensionamento automatico degli assi X e YPoiché conosci le colonne che stai utilizzando, puoi utilizzare Col Min + Col Max per ottenere i valori minimo e massimo (dovrebbero rispettare i codici dei valori mancanti). Quindi utilizza la combinazione dei tuoi valori, della funzione Abs() e della funzione Max() per ottenere il valore da utilizzare per gli assi xey
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
show(Col Max(Column(dt, "height")));
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
show(Col Max(Column(dt, "height")));
ma penso anche che Bivariate non dovrebbe tracciare affatto quei punti se sono stati ignorati dai codici valore mancante
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val1 = Max(Max(Abs(xs)), Max(Abs(ys)));
biv << close window;
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val2 = Max(Max(Abs(xs)), Max(Abs(ys)));
show(val1, val2);Re: Ridimensionamento automatico degli assi X e YHo molti codici di errore numerici per preservare il tipo di dati per la colonna. Devo chiudere un occhio su quelli in analisi. Tuttavia, se X o Y sono contrassegnati con un codice di valore mancante e il partner non lo è, le scale possono essere impostate in base a dati che non sono effettivamente tracciati sul grafico

Grazie per il grande aiuto.
Ciao
Testa di chiave
Re: Ridimensionamento automatico degli assi X e YCosa significa "contrassegnato come mancante" in questo caso?
Se desideri mantenere l'altro valore, penso che dovrebbe funzionare comunque anche se le matrici hanno valori mancanti.

Re: Ridimensionamento automatico degli assi X e YC'è una piccola cosa di cui sono arrivato a capire. In alcuni casi, una delle matrici ys o xs presenta valori mancanti perché le è stato assegnato un codice valore mancante. I valori della matrice partner potrebbero non mancare e possono essere inclusi per impostare le scale. Esiste un modo per eliminare i valori da ys se la riga è contrassegnata come mancante per xs con la stessa eliminazione di xs che si verifica quando ys è un valore mancante.
Ciao
Testa di chiave
Re: Ridimensionamento automatico degli assi X e YEpico! Funziona come un fascino.
Re: Ridimensionamento automatico degli assi X e YCalcolare i valori massimi (dei valori assoluti), prenderne il negativo e impostare i valori potrebbe essere un'opzione. Puoi anche calcolare i valori dalla tabella dati utilizzando Col Max() / Col Min() o Riepiloga
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val = Max(Max(Abs(xs)), Max(Abs(ys)));
xaxis = Report(biv)[AxisBox(1)];
yaxis = Report(biv)[AxisBox(2)];
xaxis << Min(-1*val) << Max(val);
yaxis << Min(-1*val) << Max(val);