如何在不同的 Y 轴上使用不同的颜色注释背景?以下 JSL 可以在 X 轴上用不同的颜色标注 100 到 120 的区域,但不能跨越不同的 Y 轴。我该如何修改它以在 Y 轴上用不同的变量标注不同的背景颜色?

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height),Y(:age)),
Elements(Points(X, Y, Legend(3))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Add Ref Line(100, "Solid", "blue", "", 5),
Add Ref Line(120, "Solid", "blue", "", 5)}
)
)
);
rep = gb << report;
framebox = rep[frame box(1)];
framebox << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(100, Y Origin() + Y Range(), 120, Y Origin() , 1)
);数据探索与可视化回复:如何在不同的 Y 轴上使用不同的颜色注释背景?当您有多个轴(或组、包装或页面)时,您将拥有多个 FrameBox,因此您可以为每个 FrameBox 添加单独的图形脚本。简化版本如下
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(100, Y Origin() + Y Range(), 120, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(100, Y Origin() + Y Range(), 120, Y Origin(), 1);
);

回复:如何在不同的 Y 轴上使用不同的颜色注释背景?附加问题:如果 X 轴的数据类型为“文本”,如何绘制颜色框?
例如,我想用特定的颜色标记从 TIM 到 JOE 的范围。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect("TIM", Y Origin() + Y Range(), "JOE", Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect("TIM", Y Origin() + Y Range(), "JOE", Y Origin(), 1);
);回复:如何在不同的 Y 轴上使用不同的颜色注释背景?您必须找出正确的 x 轴值,然后利用这些值
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3)))
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(17, Y Origin() + Y Range(), 37, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(17, Y Origin() + Y Range(), 37, Y Origin(), 1);
);
这可能很容易,有时也可能非常困难,但你可以通过检查 X 轴设置和标签来了解

回复:如何在不同的 Y 轴上使用不同的颜色注释背景?如何使用 JSL 读取当前 X 轴上的 LABEL 和 VALUE 的映射?我找不到读取当前 X 轴上的 LABEL 和对应 VALUE 的方法。
我想在文本标签上使用 MATCH 来获取值,然后用彩色框突出显示特定范围的值。
回复:如何在不同的 Y 轴上使用不同的颜色注释背景?如果我没记错的话......(目前)最简单的方法是使用摘要表或摘要从数据表中读取它。
回复:如何在不同的 Y 轴上使用不同的颜色注释背景?我想根据用户选择的区域在 X 轴上标记颜色。但是,由于用户使用本地数据过滤器,图表上的 X 轴会发生变化。由于 X 轴的文本形式是可变的,我无法指定固定的值和标签对应关系。我希望直接访问图表 X 轴上的标签和值,或者能够根据用户在本地数据过滤器上的选择确定 X 轴上的相应值和标签。如下面的脚本所示,我想让用户选择本地数据过滤器,另外选择要标记颜色的 X 轴。如果无法获取图表 X 轴上当前显示的项目或本地数据过滤器上选择的结果,就无法顺利获取相应的值和标签。有什么办法可以实现吗?“Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:name), Y(:height), Y(:age)),
Elements(Points(X, Y, Legend(3))),
Local Data Filter(
Add Filter(
columns( :name ),
Where(
:name == {"ALFRED", "ALICE", "AMY", "BARBARA", "CAROL", "CHRIS",
"CLAY"}
),
Display( :name, N Items( 15 ), Find( Set Text( "" ) ) )
)
),
);
rep = gb << report;
fbs = rep << XPath("//FrameBox");
fbs[1] << Add Graphics Script(
Transparency(0.5);
Fill Color("Gray");
Rect(2, Y Origin() + Y Range(), 4, Y Origin(), 1);
);
fbs[2] << Add Graphics Script(
Transparency(0.5);
Fill Color("Green");
Rect(2, Y Origin() + Y Range(), 4, Y Origin(), 1);
); 回复:如何在不同的 Y 轴上使用不同的颜色注释背景?如果您要管理本地过滤器,那么它很可能会变得更加复杂。您希望为哪个范围着色?当用户过滤掉该范围或其中一端时会发生什么?
回复:如何在不同的 Y 轴上使用不同的颜色注释背景?是的,有了本地数据过滤器,情况确实会变得更加复杂。因此,我想知道是否有任何技术可以获取图表 X 轴上的当前项目或读取本地数据过滤器的选定选项,以便计算当前值和标签的映射表。
回复:如何在不同的 Y 轴上使用不同的颜色注释背景?您可以从本地数据过滤器中获取不同类型的值,然后可以解析/利用这些值
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
dist = dt << Distribution(
Nominal Distribution(Column(:country))
);
ldf = dist << Local Data Filter(
Add Filter(columns(:sex), Where(:sex == "Female")),
Mode(Show(1), Include(1))
);
Show(ldf << get script, ldf << Get where clause, ldf << Get Filtered Rows);

记得检查没有行被过滤的特殊情况