Liebe Community,
Ich habe ein wenig Schwierigkeiten damit, Referenzlinien auf einer Ordinalachse zu zeichnen. Es gibt tolle Beispiele dafür, wie man Referenzlinien auf kontinuierlichen Achsen zeichnet, aber bei Ordinalachsen scheint es anders zu sein. Im folgenden Beispiel kann ich JMP also nicht anweisen, eine Referenzlinie im Alter von 13 Jahren zu zeichnen, stattdessen muss ich die Position an der Achse im GraphBuilder finden (das sind zwei: 13 ist der zweite Alterswert bei der Reihenfolge von niedrig nach hoch). und legen Sie die Referenzlinie für diese Position fest. Soweit ok.
Aber ich möchte Referenzlinien auf vielen Graph Builder-Objekten zeichnen, die selbst über lokale Datenfilter verfügen und daher das gleiche Jahr, z. B. 13, an verschiedenen Positionen haben. Sie können versuchen, wenn Sie age=12 durch den lokalen Datenfilter ausschließen, befindet sich die Referenzlinie an der falschen Position.
Eine bessere Strategie wäre also, wenn ich die Werte von der x-Achse des Graph Builder-Objekts abrufen könnte, damit ich für jeden Graph Builder korrekt eine Referenzlinie bei age=13 hinzufügen könnte.
In meinem realen Beispiel muss ich die Referenzlinie für jeden GraphBuilder in einem Dashboard mit verschiedenen Filtern in der aktuellen Kalenderwoche festlegen, die im Format „JJJJWW“ angegeben wird.
JMP16 / Pro unter Win10.
Irgendwelche Ideen? Dank im Voraus
Names Default To Here( 1 );
// test reference lines for ordinal/nominal axis
// Open table and make graph
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
gb_obj = dt << graph builder( Show Control Panel( 0 ), variables( x( :age ), y( :weight ) ), Elements( bar( X, Y ) ) );
// get location of certain ordinal or nominal value from data table
refpos="13";
Summarize( dt, age_lst = by( :age ) );
label = Loc( age_lst, refpos );
// apply reference lines at different positions
Report( gb_obj )[AxisBox( 1 )] << add ref line( Eval( label - 1 ), "Dotted", "Red", refpos, 3 );
Möglicherweise müssen Sie einige Berechnungen basierend auf den Filtern durchführen Gibt es eine Methode, um Achsenwerte vom Graph Builder abzurufen?
Die tatsächlichen Achsenwerte für Ihr Diagramm liegen zwischen 0 und 3. Öffnen Sie die Achseneinstellungen und Sie sehen die Werte

Um dem Diagramm eine Referenzlinie hinzuzufügen, müssen Sie daher in diesen Maßstab umrechnen.Unten finden Sie eine Funktion zum Hinzufügen einer Ref-Zeile
Report( gb_obj )[AxisBox( 1 )] << add ref line( 1, "Dotted", Red, "Yes", 3 );
