插入另一個顯示框時,FrameBox 不保留參考線我知道參考線是軸盒的屬性,但是解決方法是什麼? 用例是使用 Lineup 框將多個圖中的元素合併為一個。 我無法在此處的討論板上找到答案。
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"
高級統計建模內容組織數據混合和清理回复:FrameBox 插入另一個顯示框時不保留參考線為了完整起見,這裡是一個代碼示例,顯示了參考線和 V/H 線與 << 添加圖形腳本之間的差異。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gbBar = dt << Graph Builder(
Size( 521, 452 ),
Show Control Panel( 0 ),
Variables( X( :age ) ),
Elements( Bar( X, Legend( 3 ) ) ),
SendToReport( Dispatch( {}, "age", ScaleBox, {Add Ref Line( 2.5, "Solid", "Medium Dark Red", "", 1 )} ) )
); // reference lines do not show up in FrameBox
fboxBar = Report( gbBar )[FrameBox( 1 )];
fboxBar <<
Add Graphics Script(
1, // draws the line first
Pen Color( "gray" );
Pen Size( 1 );
V Line([0.5, 1.5]);
); // graphics script applies to frame box, as required
nw = New Window("for testing",
lu1 = Lineup Box(fboxBar)
)回复:FrameBox 插入另一個顯示框時不保留參考線我嘗試一下。 再次感謝您的快速回复!回复:FrameBox 插入另一個顯示框時不保留參考線<< 添加圖形腳本是 FrameBox 的擴展,因此我建議您從使用參考線轉向使用 << 添加圖形腳本中的 Line() 函數來生成線條。回复:FrameBox 插入另一個顯示框時不保留參考線感謝您及時的回复。 這不起作用,因為圖片框包含軸和圖例。 我正在使用排列框,以便我可以將其他元素與 x 軸對齊。 簡化示例:
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 ) ) )
);
我很樂意學習另一種方法。 最初,我嘗試使用與元素寬度匹配的間隔框(使用 << get width),但失敗了,因為有一些我無法解釋的邊距。

回复:FrameBox 插入另一個顯示框時不保留參考線附加 PictureBox() 而不是 FrameBox()
db1 << Append(report(gbBar)[PictureBox(1)]);
