Aggiungi linee verticali all'istogrammaHo creato un istogramma utilizzando il generatore di grafici e vorrei adattare il mio script per aggiungere linee verticali a un valore a mia scelta sovrapposte all'istogramma.
SceneggiaturaRe: Aggiungi linee verticali all'istogrammaEcco un paio di opzioni. Il primo è lasciare che JMP lo script per te e poi usarlo Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute e il secondo viene modificato dall'esempio di Scripting Index trovato cercando Ref Line
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
ref_line = 180;
// Option1
Eval(EvalExpr(gb1 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Min(57), Max(205.037037037037), Inc(20), Minor Ticks(0),
Add Ref Line(Expr(ref_line), "Solid", "Black", "", 1)}
)
)
)));
// Option2
gb2 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3)))
);
axisbox = Report(gb2)[AxisBox(1)];
axisbox << Add Ref Line(ref_line, "Dotted", red, "F mean", 2);Re: Aggiungi linee verticali all'istogrammaQuesto è tangenzialmente correlato ma lo metterò comunque qui.È correlato specificamente alla piattaforma di distribuzione (non al generatore di grafici che era nella domanda originale), ma potrebbe applicarsi ad altre piattaforme a seconda delle preferenze dell'utente, non ne sono sicuro.Non mi aspetterei di essere un problema nel generatore di grafici, soprattutto perché non penso che le preferenze dell'utente entrino in gioco così tanto.
Nella piattaforma di distribuzione, se non hai gli assi di probabilità, densità e show count impostati per essere visualizzati, l'indice per la casella dell'asse dei dati della distribuzione è 1, il che significa che puoi fare riferimento con report(xxxx)[ AxisBox(1)], simile al post di Jarmo sopra.Ma se aggiungi uno qualsiasi degli altri assi, l'indice diventa 2, 3 o 4 (il massimo degli assi totali visualizzati. se hai sempre le stesse impostazioni, puoi codificarlo e dovrebbe andare bene. Ma se lo script viene distribuito ampiamente, è necessario tenere conto di altre impostazioni delle preferenze dell'utente. Ho provato a fare un "prendi oggetti" ma penso che abbia sempre restituito 4 anche se alcuni erano vuoti. Probabilmente avrei potuto trovare una soluzione alternativa lì, ma ho finito per usare xpath.Puoi guardare l'xml o guardare le proprietà di un report di output per vedere cosa potrebbe funzionare. Ciò significa che non cercare solo una casella dell'asse poiché potrebbero essercene 4, piuttosto cerca la casella dell'asse in una casella del bordo in una casella a discesa, che sembra essere unica per l'asse "principale". Spero che questo resista alla prova del tempo, ma finora ha funzionato per me.
myrpt = current report();
//show( myrpt<<GET xml=""></GET>// use xpList[1] instead of referencing an axisbox index. <BR />// If there's multiple distributions in the report, loop through or be more specific when grabbing the xpath.
Re: Aggiungi linee verticali all'istogrammaA volte questi devono essere costruiti un po' caso per caso. Di solito uso XPath con una combinazione di << figlio, << sib, << genitore e così via...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Prob Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Count Axis(1),
Prob Axis(1),
Density Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
Un'opzione è anche quella di rimuovere l'effetto delle preferenze degli utenti, ma a seconda della piattaforma ciò potrebbe richiedere molto sforzo per impostare tutti i valori predefiniti su 1 o 0.
Re: Aggiungi linee verticali all'istogramma>>Un'opzione è anche quella di rimuovere l'effetto delle preferenze degli utenti, ma a seconda della piattaforma ciò potrebbe richiedere molto sforzo per impostare tutti i valori predefiniti su 1 o 0.
si, sono d'accordo. Ho pensato di fare qualcosa del genere per alcuni script, ma in realtà lo script particolare da cui proviene questo codice di esempio è progettato per scorrere tutte le distribuzioni nella finestra di output e ridurre i contenitori dell'istogramma per farlo sembrare più "normale". Solo uno script generico a un pulsante che in realtà non sta creando alcun output, ma solo modificando gli assi.
Re: Aggiungi linee verticali all'istogrammaUn'altra opzione potrebbe essere quella di aggiungere un limite alle specifiche delle proprietà della colonna e lasciarlo mostrare nell'istogramma della piattaforma di distribuzione.
Il valore può quindi essere utilizzato anche per altre piattaforme (capacità di processo ...).
