使用 JSL 改变区域的透明度你好,
我正在使用分组变量拟合模型,并将预测公式和区间公式保存到我的表格中。然后,我将原始 Y 值、预测 Y 值和 LCL/UCL 放在 Y 轴上,并使用 Wrap 功能创建包含分组变量的图表(示例代码见下文)。
我想要通过脚本将区域的透明度设置为特定数值。我知道可以在图例中右键单击进行更改,但这需要一个需要用户输入的脚本,所以我不能使用常规的“发送到报表”和“分发”功能来静态地调用列。
<BR />Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Diamonds Data.jmp" );
mod = Fit Model(
Y( :Price ),
By( :Color ),
Effects( :Depth ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
:Price << {Summary of Fit( 0 ), Analysis of Variance( 0 ), Parameter Estimates( 1 ),
Sorted Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 )}
)
);
mod << prediction and interval formulas;
Graph Builder(
Size( 1163, 748 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Depth ),
Y( :Price ),
Y( :Pred Formula Price By Color, Position( 1 ) ),
Y( :Lower 95% Mean Price By Color, Position( 1 ) ),
Y( :Upper 95% Mean Price By Color, Position( 1 ) ),
Wrap( :Color ),
Overlay( :Color )
),
Elements(
Points( X, Y( 1 ), Legend( 7 ) ),
Line( X, Y( 2 ), Legend( 9 ) ),
Area( X, Y( 3 ), Y( 4 ), Legend( 10 ), Area Style( "Range" ), Transparency(0.25) )
)
);
自动化和脚本编写回复:使用 JSL 更改区域透明度您可以查找多边形段,然后设置它们的透明度。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Diamonds Data.jmp");
mod = dt << Fit Model(
Y(:Price),
By(:Color),
Effects(:Depth),
Personality("Standard Least Squares"),
Emphasis("Effect Screening"),
Run(
:Price << {Summary of Fit(0), Analysis of Variance(0), Parameter Estimates(1),
Sorted Estimates(0), Plot Actual by Predicted(1), Plot Regression(0),
Plot Residual by Predicted(1)}
)
);
mod << prediction and interval formulas;
gb = dt << Graph Builder(
Size(1163, 748),
Show Control Panel(0),
Show Legend(0),
Variables(
X(:Depth),
Y(:Price),
Y(:Pred Formula Price By Color, Position(1)),
Y(:Lower 95% Mean Price By Color, Position(1)),
Y(:Upper 95% Mean Price By Color, Position(1)),
Wrap(:Color),
Overlay(:Color)
),
Elements(
Points(X, Y(1), Legend(7)),
Line(X, Y(2), Legend(9)),
Area(X, Y(3), Y(4), Legend(10), Area Style("Range"))
)
);
fbs = Report(gb) << XPath("//FrameBox");
For Each({fb}, fbs,
ps = fb << Find Seg(PolySeg(1));
If(!IsEmpty(ps),
ps << Transparency(0.25);
);
);