从数据表中取消叠加图中的数据链接<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我已经仔细研究了脚本指南,寻找一种方法来“打破”叠加图中显示的数据与其数据表之间的链接,但似乎无法找到如何做到这一点。原因是我想使用各种用户指定的数据日期范围创建多个操作。我使用数据过滤器来选择我感兴趣的日期范围,以便生成的 OP 可以自动缩放 x 和 y 轴数据,这样我就不必指定这些参数,因为它们在一年中会发生巨大变化。
为了简化问题,我在下面添加了一些模拟代码,这些代码基本上显示了我想要完成的任务:即,创建 2 个显示 1-3 个月和 5-7 个月数据的 OP,并取消链接每个 OP与原始数据相比,这样当从数据过滤器中选择的数据发生变化时,OP 中显示的数据不会与最初指定的数据发生变化。任何有关如何实现这一目标的建议将不胜感激。
清除日志();
dt = Open( "C:\Program Files\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
日期 = 1;
埃达=3;
obj = dt << 数据过滤器(
自动清除 ( 1 ),
显示窗口 ( 0 ),
添加过滤器(
列(:名称(“月份”)),
在哪里(
:名称( "月份" ) >= sdate & :名称( "月份" ) <=
埃达特
)
),
模式(显示(1),包含(1))
);
obj << 关闭;
叠加图(
X(:名称(“月份”)),
Y(:名称(“温度”)),
分离轴( 1 ),
连接缺失( 1 ),
连接点( 1 ),
发送至报告(
派遣(
{},
“101”,
秤盒,
{显示主要网格( 1 ),旋转标签(“自动”)}
)
)
);
日期 = 5;
日期 = 7;
obj = dt << 数据过滤器(
自动清除 ( 1 ),
显示窗口 ( 0 ),
添加过滤器(
列(:名称(“月份”)),
在哪里(
:名称( "月份" ) >= sdate & :名称( "月份" ) <=
埃达特
)
),
模式(显示(1),包含(1))
);
obj << 关闭;
叠加图(
X(:名称(“月份”)),
Y(:名称(“温度”)),
分离轴( 1 ),
连接缺失( 1 ),
连接点( 1 ),
发送至报告(
派遣(
{},
“101”,
秤盒,
{显示主要网格( 1 ),旋转标签(“自动”)}
)
)
);
回复:从数据表中取消叠加图中的数据链接如果您担心空间问题,您可能会想到图形生成器默认显示的控制面板,但您可以使用显示控制面板(0) 将其关闭。
而且,如果您可以将条件编码到列中,则可以使用 X 组和 Y 组角色来进行相当紧凑的显示。
在下面的示例中,我创建了一个指示公司规模的列来对我的条件进行编码。
dt =打开( “$SAMPLE_DATA\Financial.jmp” ) ;
dt <<新专栏( “公司规模” ,公式(如果( :姓名( “#emp” ) < 10000 , “小的” , “大的” ) ) ) ;
dt <<图形生成器(
尺寸(第638章,第770章) ,
显示控制面板( 0 ) ,
变量(
X ( :姓名( “资产(百万美元)” ) ) ,
是( :姓名( “销售额(百万美元)” ) ) ,
X组( :公司规模) ,
Y组( :类型)
) ,
元素(积分( X ,是,传奇( 1 ) ) ,更顺畅( X ,是,传奇( 2 ) ) )
) ;
回复:从数据表中取消叠加图中的数据链接感谢杰夫对此的帮助。我很欣赏图形生成器的建议。这可能不适用于我的特定情况,因为我正在处理 2 列 x 6 行的图形显示矩阵,并且图形生成器开销占用了太多空间。然而,很高兴看到这个例子,未来的图表不会那么大,并且拥有一些交互功能会很有帮助。
回复:从数据表中取消叠加图中的数据链接在 JMP 10 中,您可以使用本地数据过滤器,在不影响原始数据表的情况下进行过滤。
我还建议使用图形生成器而不是叠加图。
这是一个例子:
dt =打开( “$SAMPLE_DATA\时间序列\罗利温度.JMP” ) ;
新窗户( 《我的窗户》 ,
V 列表框(
dt <<图形生成器(
变量( X ( :姓名( “月/年” ) ) ,是( :温度) ) ,
元素(线( X ,是,传奇( 4 ) ,行序( 0 ) ,统计汇总( “意思是” ) ) ) ,
本地数据过滤器(
地点( { 207 ,第385章} ) ,
添加过滤器(列( :年) ,在哪里( :年>= 1980年& :年<= 1982年) ) ,
模式(选择( 0 ) ,展示( 1 ) ,包括( 1 ) )
)
) ;
dt <<图形生成器(
尺寸(第570章, 518 ) ,
变量( X ( :姓名( “月/年” ) ) ,是( :温度) ) ,
元素(线( X ,是,传奇( 4 ) ,行序( 0 ) ,统计汇总( “意思是” ) ) ) ,
本地数据过滤器(
地点( { 207 ,第385章} ) ,
添加过滤器(列( :年) ,在哪里( :年>= 1982年& :年<= 1990年) ) ,
模式(选择( 0 ) ,展示( 1 ) ,包括( 1 ) )
)
) ;
)
) ;
回复:从数据表中取消叠加图中的数据链接或者使用新窗口的想法:
dt = 打开(“$SAMPLE_DATA/Fitness.jmp”);
新窗口(“我的窗口”,
大纲框( "我的大纲框",
V 列表框(
洛 = 9;
你好=11;
op1 = 叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);,
洛 = 10;
你好=12;
op2 = 叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);
)
)
);
回复:从数据表中取消叠加图中的数据链接这是使用日记想法的一种可能性。
dt = 打开(“$SAMPLE_DATA/Fitness.jmp”);
洛 = 9;
你好=11;
op1 = 叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);
报告(op1)<<期刊();
jrn = 当前期刊();
洛 = 10;
你好=12;
op2 = 叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);
jrn << 追加(报告(op2));
回复:从数据表中取消叠加图中的数据链接谢谢大家的建议。两者都是解决问题的有趣方法。但是,这两种方法都不适用于我的特定应用程序,因为我想在单个 VListBox 窗口中创建多个 OP(抱歉,我在原来的帖子中并不清楚这一点)。我似乎无法弄清楚如何使您的任何一种方法都能实现这一点。有任何想法吗?
新窗户(
V 列表框(
Op1 = 叠加图(.....),
Op1 = 叠加图(.....)
)
);
回复:从数据表中取消叠加图中的数据链接这个例子可能提供稍微不同的视角。
dt = 打开(“$SAMPLE_DATA/Fitness.jmp”);
洛 = 9;
你好=11;
叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);
洛 = 10;
你好=12;
叠加图(
X(:运行时),
Y(:氧),
其中( :运行时 >= lo & :运行时 <= hi )
);
回复:从数据表中取消叠加图中的数据链接如果我错了,请纠正我,但我认为不可能打破平台和数据表之间的链接。 该图必须移出平台,例如移至日记或新窗口。
本例中使用了 Bothe 方法。 两个过滤后的叠加图都被发送到同一日志或单独的窗口。
清除日志() ;
dt =打开( “$SAMPLE_DATA\时间序列\罗利温度.JMP” ) ;
// 数据过滤表达式
过滤器表达式=表达式(
对象= dt <<数据过滤器(
自动清除( 1 ) ,
橱窗( 0 ) ,
添加过滤器(
列( :姓名( “月” ) ) ,
在哪里( :姓名( “月” ) >=日期& :姓名( “月” ) <=埃达特)
) ,
模式(展示( 1 ) ,包括( 1 ) )
) ;
对象<<关闭;
) ;
// 叠加图
覆盖=表达式(
操作=叠加图(
X ( :姓名( “月” ) ) ,
是( :姓名( “温度” ) ) ,
自动重新计算( 0 ) ,
单独的轴( 1 ) ,
连接缺失( 1 ) ,
连接点( 1 ) ,
发送至报告(派遣( {} , “101” ,比例盒, {显示主要网格( 1 ) ,旋转标签( “自动的” )} ) ) ,
无形的
)
) ;
// 第一个图
日期= 1 ;埃达特= 3 ;过滤器表达式;覆盖;
// 新窗户...
西北=新窗户( “月 ” ||查尔(日期) || “-” ||查尔(埃达特) ,报告(操作)[ 1 ] ) ;
// 或日记
操作<<杂志;
// 第二个图
日期= 5 ;埃达特= 7 ;过滤器表达式;覆盖;
西北=新窗户( “月 ” ||查尔(日期) || “-” ||查尔(埃达特) ,报告(操作)[ 1 ] ) ;
操作<<杂志;