FrameBox behält keine Referenzlinien bei, wenn es in ein anderes Anzeigefeld eingefügt wirdIch weiß, dass Referenzlinien eine Eigenschaft von Axis Boxes sind, aber was ist eine Problemumgehung? Der Anwendungsfall besteht darin, Felder auszurichten, um Elemente aus mehreren Plots zu einem zu kombinieren. Ich konnte meine Antwort hier nicht in den Diskussionsrunden finden.
dt = Data Table("Big Class");
gbBar = Graph Builder(
Size( 521, 452 ),
Show Control Panel( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport(
Dispatch(
{},
"age",
ScaleBox,
{Add Ref Line( 1.5, "Solid", "Medium Dark Red", "", 1 )}
)
)
);
nw = New Window("for testing",
OutlineBox("stuff",
db1 = H List Box();
)
);
db1 << Append(report(gbBar)[FrameBox(1)]);jmpversion()
/*:
"14.3.0"
GrafikSkriptingBetreff: FrameBox behält keine Referenzlinien bei, wenn es in ein anderes Anzeigefeld eingefügt wirdHängen Sie die PictureBox () anstelle der FrameBox () an
db1 << Append(report(gbBar)[PictureBox(1)]);

Betreff: FrameBox behält keine Referenzlinien bei, wenn es in ein anderes Anzeigefeld eingefügt wirdDanke für die schnelle Antwort. Dies funktioniert nicht, da die Picture Box Achsen und Legenden enthält. Ich verwende eine Aufstellungsbox, damit ich andere Elemente an der x-Achse ausrichten kann. Vereinfachtes Beispiel:
dt = Data Table( "Big Class" );
gbBar = Graph Builder(
Size( 521, 452 ),
Show Control Panel( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "age", ScaleBox, {Add Ref Line( 1.5, "Solid", "Medium Dark Red", "", 1 )} ) )
);
nw = New Window( "for testing",
Outline Box( "complicated plot",
Spacer Box( Size( 2, 10 ) ),
lu1 = Lineup Box( N Col( 3 ), Spacing( 0 ) )
)
);
lu1 << Append( Report( gbBar )[AxisBox( 2 )] );
lu1 << Append( Report( gbBar )[FrameBox( 1 )] );
lu1 << Append( Report( gbBar )[LegendBox( 1 )] );
//end of row
lu1 << Append( Spacer Box() );
lu1 << Append( Report( gbBar )[AxisBox( 1 )] );
lu1 << Append( Spacer Box() );
//end of row
lu1 << Append( Spacer Box() );
lu1 << Append( insrt_icons = H List Box() );
lu1 << Append( Spacer Box() );
numXAxisWidth = (gbBar << report)[AxisBox( 1 )] << get width;
numAges = N Items( Associative Array( Column( dt, "age" ) ) << get keys );
numOneIncr = (numXAxisWidth) / (numAges);
For( _i = 1, _i <= numAges, _i++,
insrt_icons << Append( Spacer Box( Size( numOneIncr, numOneIncr ), Color( _i ) ) )
);
Ich würde mich freuen, einen alternativen Ansatz zu lernen. Anfangs habe ich versucht, Abstandhalterfelder zu verwenden, die der Breite der Elemente entsprechen (mit << get width), aber das ist fehlgeschlagen, weil es einen Rand gab, den ich nicht berücksichtigen konnte.
