FrameBox non mantiene le linee di riferimento quando viene inserito in un'altra casella di visualizzazioneSo che le linee di riferimento sono una proprietà dei riquadri degli assi, ma qual è una soluzione alternativa? Il caso d'uso è quello di riquadri Lineup per combinare elementi di più grafici in uno. Non sono riuscito a trovare la mia risposta nei forum di discussione qui.
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"
GraficaScriptingOggetto: FrameBox non mantiene le linee di riferimento quando viene inserito in un'altra casella di visualizzazioneAggiungi il PictureBox () anziché il FrameBox ()
db1 << Append(report(gbBar)[PictureBox(1)]);

Oggetto: FrameBox non mantiene le linee di riferimento quando viene inserito in un'altra casella di visualizzazioneGrazie per la risposta rapida. Questo non funzionerà poiché il Picture Box contiene assi e legenda. Sto usando una casella di formazione in modo da poter allineare altri elementi con l'asse x. Esempio semplificato:
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 ) ) )
);
Sarei felice di imparare un approccio alternativo. Inizialmente, ho provato a utilizzare i riquadri spaziatori che corrispondono alla larghezza degli elementi (utilizzando << ottieni larghezza), ma non è riuscito perché c'era un margine di cui non potevo tenere conto.
