如何仅针对选定的数据范围进行绘图而不提取子集?比如像这样,我故意把选定范围内的数据增加了:
年龄==14
dt=Open("$SAMPLE_DATA/Big Class.jmp");
dt<
<SORT></SORT>
<P>谢谢专家!</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><span class="lia-inline-image-display-wrapper" image-alt="2025-05-16_16-23-08.png" style="width: 841px;"><img src="https://us.v-cdn.net/6038925/uploads/images/75880iC5DA9DCF7B68F0AA/2025-05-16_16-23-08.png" role="button" title="2025-05-16_16-23-08.png" alt="2025-05-16_16-23-08.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P>
<LINGO-LABS id="lingo-labs-873899" slang="en-US" mode="CREATE">
<LINGO-LABEL>自动化和脚本</LINGO-LABEL>
<LINGO-LABEL>视窗</LINGO-LABEL>
</LINGO-LABS>
回复:如何仅针对选定的数据范围进行绘图而不提取子集?这是提取子集后绘制的效果

回复:如何仅针对选定的数据范围进行绘图而不提取子集?你好@拉拉 ,
您可以使用本地数据过滤器(图形生成器选项的红色三角形)仅绘制数据的特定子集并以交互方式进行更改。

JSL脚本:
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables(
X( :NO ),
Y( :height1 ),
Y( :weight1, Position( 1 ), Side( "Right" ) )
),
Elements( Line( X, Y( 1 ), Legend( 5 ) ), Line( X, Y( 2 ), Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == 14 ),
Display( :age, N Items( 6 ) )
)
)
);
希望这个答案能对你有所帮助,
回复:如何仅针对选定的数据范围进行绘图而不提取子集?谢谢专家!
能否实现同一个绘图界面有多个图形时同时使用不同的滤镜?
我尝试过但失败了。
谢谢!

回复:如何仅针对选定的数据范围进行绘图而不提取子集?如果我理解正确的话,本地数据过滤器不适用于所有图表。
但是,如果您只对 2 个年龄组感兴趣,则可以使用年龄变量作为“页面”变量,并且借助本地数据过滤器仅显示 2 个年龄组:

JSL脚本:
Graph Builder(
Size( 630, 590 ),
Show Control Panel( 0 ),
Variables(
X( :NO ),
Y( :height1 ),
Y( :weight1, Position( 1 ), Side( "Right" ) ),
Page( :age )
),
Elements( Line( X, Y( 1 ), Legend( 5 ) ), Line( X, Y( 2 ), Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == {12, 14} ),
Display( :age, N Items( 6 ) )
)
)
);
希望这有帮助,
回复:如何仅针对选定的数据范围进行绘图而不提取子集?谢谢!
Graph Builder(
Size(435, 1042),
Show Control Panel(0),
Variables(X(:NO), Y(:height1), Y(:weight1, Position(1)), Group Y(:age)),
Elements(Line(X, Y(1), Y(2), Legend(5)))
);
看来通过Y轴对“年龄”进行分组是达不到这个效果的。
Where( :age == {12,13, 14,15,16,17} ),

回复:如何仅针对选定的数据范围进行绘图而不提取子集?可以轻松生成一个显示 2 个实例的窗口。

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Sort( By( age ), Order( Ascending ), replace table );
ca = "NO";
New Column( ca );
Column( ca ) << Formula(
If( Row() == 1 | age != Lag( age, 1 ),
r = Row();
1;
,
1 + Row() - r
)
);
dt << run formulas;
Column( ca ) << deleteFormula;
ca = "height1";
New Column( ca );
Column( ca ) << Formula( If( age == 14, height * 100, height ) );
dt << run formulas;
Column( ca ) << deleteFormula;
ca = "weight1";
New Column( ca );
Column( ca ) << Formula( If( age == 14, weight * 100, weight ) );
dt << run formulas;
Column( ca ) << deleteFormula;
New Window( "graphs",
V List Box(
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :NO ), Y( :height1 ), Y( :weight1, Position( 1 ), Side( "Right" ) ) ),
Elements( Line( X, Y( 1 ), Legend( 5 ) ), Line( X, Y( 2 ), Legend( 6 ) ) ),
Local Data Filter( Add Filter( columns( :age ), Where( :age == 14 ), Display( :age, N Items( 6 ) ) ) )
);
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :NO ), Y( :height1 ), Y( :weight1, Position( 1 ), Side( "Right" ) ) ),
Elements( Line( X, Y( 1 ), Legend( 5 ) ), Line( X, Y( 2 ), Legend( 6 ) ) ),
Local Data Filter( Add Filter( columns( :age ), Where( :age == 12 ), Display( :age, N Items( 6 ) ) ) )
);
)
);
回复:如何仅针对选定的数据范围进行绘图而不提取子集?请教高手:这种手动创建图表的步骤是怎样的?我试过好几次了,都没成功。
请再次帮忙。谢谢!
回复:如何仅针对选定的数据范围进行绘图而不提取子集?你好@拉拉 ,
我将从您的初始脚本和图表开始逐步进行:
- 从“图形生成器”旁边的红色三角形中,单击“本地数据过滤器”
- 双击“年龄”,然后按住 CTRL 键并单击您想要显示的每个年龄值:

- 从图形生成器的列菜单中选择“年龄”,然后拖放到“页面”区域:

- 单击“完成”即可获得最终图表:

您可以在“基本图形帮助”中阅读有关图形选项和变量角色的更多信息。
希望您能够按照这些分步说明重现结果,
回复:如何仅针对选定的数据范围进行绘图而不提取子集?谢谢吉姆!
我使用此代码以这种方式在同一个表中绘制多只股票。
新添加的K线图不再有红色和绿色。
https://community.jmp.com/t5/Discussions/Presenting-stock-data-in-form-of-box-plot/td-p/322791/page/2
