Hallo! Ich habe JMP Pro 14. Ich erstelle mehrere Boxplots, in denen ich die signifikanten Unterschiede zwischen Kategorien mit Buchstaben über dem Q3 zeigen möchte, wie in dieser Grafik:

Wie kann ich die Buchstaben a und b über den Kästchen platzieren? Meine Handlung ist diese:

Der Mi Graph Builder-Code lautet:
Graph Builder(
Size( 571, 448 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Show Title( 0 ),
Show Footer( 0 ),
Variables( X( :Cat ), Y( :Name( "Pl/min" ) ) ),
Elements( Box Plot( X, Y, Legend( 6 ), Box Style( "Solid" ) ) ),
SendToReport(
Dispatch(
{},
"Cat",
ScaleBox,
{Reversed Scale, Label Row(
{Set Font Size( 12 ), Tick Mark( Label( "6" ), Label( "6 " ) ),
Tick Mark( Label( "7" ), Label( "7 " ) )}
)}
),
Dispatch(
{},
"Pl/min",
ScaleBox,
{Min( 5.5 ), Max( 18 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
6,
Properties(
0,
{Line Color( 32 ), Fill Color( 0 )},
Item ID( "Pl/min", 1 )
)
)}
),
Dispatch( {}, "X title", TextEditBox, {Set Font Size( 12 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Font Size( 12 )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg(
Box Plot Seg( "Box Plot (4)" ),
{Line Color( {128, 128, 128} ), Fill Color( "Medium Dark Red" )}
), DispatchSeg(
Box Plot Seg( "Box Plot (5)" ),
{Line Color( {128, 128, 128} ), Fill Color( "Medium Dark Yellow" )}
), DispatchSeg(
Box Plot Seg( "Box Plot (6)" ),
{Line Color( "Medium Dark Yellow" ),
Fill Color( "Medium Dark Green" )}
), DispatchSeg(
Box Plot Seg( "Box Plot (7)" ),
{Line Color( "Medium Dark Yellow" ),
Fill Color( "Medium Dark BlueCyan" )}
), DispatchSeg(
Box Plot Seg( "Box Plot (8)" ),
{Line Color( "Medium Dark Yellow" ),
Fill Color( "Medium Dark Magenta" )}
), DispatchSeg(
Box Plot Seg( "Box Plot (9)" ),
{Line Color( "Medium Dark Purple" ),
Fill Color( "Medium Dark Fuchsia" )}
)}
)
)
);Vielen Dank im Voraus.
Magali.
Ich denke, Sie müssten:
- Berechnen Sie diese Buchstaben (basierend auf meinem 5-sekündigen Googeln stammen diese Buchstaben aus Tukeys Test, daher habe ich einfach einen Verbindungsbriefbericht verwendet)
- Erstellen Sie eine neue Spalte, die diese Buchstaben den richtigen Zeilen zuordnet
- Verwenden Sie diese Spalte als Markierung
- Fügen Sie dem Diagrammersteller Punkte hinzu
- Verwenden Sie eine geeignete zusammenfassende Statistik für die Punktdarstellung, um sie an einer guten Position anzuzeigen (möglicherweise ist eine neue Spalte erforderlich, um einen gewissen Versatz zu erzeugen).
- Markierungen sollten im Diagramm angezeigt werden
Sie könnten die Schritte 2–6 höchstwahrscheinlich auch in einem grafischen Skript kombinieren
Hier ist ein ziemlich einfaches Beispiel mit Big Class unter Verwendung einer nicht grafischen Skriptoption:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
fit = dt << Oneway(Y(:height), X(:age), All Pairs(1), invisible);
letters_tb = ((Report(fit)[OutlineBox("Connecting Letters Report")]) << child) << child;
tb_letter_cols = Filter Each({col_name}, letters_tb << Get Names,
Starts With(col_name, "~Letter Column ")
);
aa_letters = Associative Array();
For Each({level, idx}, letters_tb[1] << get,
aa_letters[level] = "";
For Each({letter_col, idx_col}, tb_letter_cols,
aa_letters[level] ||= letters_tb[1 + idx_col][idx];
);
);
fit << close window;
dt << New Column("TukeyLetters", Character, Nominal, UseForMarker(1), << Set Each Value(
aa_letters[char(:age)];
));
gb = dt << Graph Builder(
Size(529, 451),
Show Control Panel(0),
Variables(X(:age), Y(:height)),
Elements(
Box Plot(X, Y, Legend(6), Box Style("Solid"), Fences(0)),
Points(
X,
Y,
Legend(7),
Summary Statistic("Third Quartile"),
Error Interval("None")
)
)
);

Bearbeiten:
Hierzu wurde ein Wunschlisteneintrag erstellt Zeigen Sie wichtige Buchstaben im Graph Builder an, wenn Sie Boxplot verwenden, und in „y by x anpassen“, wenn ein Vergleich durchgeführt wird