使用 JSL 隐藏图形中的“Where (...)”文本框你好,
是否可以使用脚本隐藏/删除带有Where(col =“x”)的文本行,如附图所示? 我是 JMP 的新手,还没有完全弄清楚所有的来龙去脉。
我有一组堆叠数据,其中所有代谢物/计数标签(pH、渗透压等)都在一列中,所有相应的数据都在另一列中。就我而言, where() 文本框是无关紧要的,因为我已经使用相同的标签重命名了图形标题。 当我在 JMP 中查看图像时,我可以通过右键单击来手动暂时隐藏文本框,但不确定如何使用 JSL 隐藏它并在导出到 html 时保持隐藏。
这是我的一个图形的示例脚本:
Graph Builder(
Size( 531, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Step ),
Y( :Name( "BR Metabolite/Count Data" ) ),
Overlay( :Run )
),
Elements(
Line( X, Y, Legend( 1 ) ),
Points( X, Y, Legend( 2 ), Jitter Limit( 0.2018 ) )
),
Where( :Name( "Metabolite/Count" ) == "pH" ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "pH" ), Image Export Display( Normal )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "pH vs. Step" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "pH" )} )
)
);感谢您的帮助!
大规模定制回复:使用 JSL 隐藏图形中的“Where (...)”文本框我在网上找到了非常巧妙的解决方案:)
dp = New Window("Graph Window", tb);
//delete all "Where" text on the chart
For( i = 1000, i > 0, i--,
try(
If( Contains( dp[Text Box( i )] << get text, "Where(:" ),
dp[Text Box( i )] << delete;
)
);
);希望这可以帮助
回复:使用 JSL 隐藏图形中的“Where (...)”文本框这是处理它的一种方法
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
New Window( "big class - Graph Builder", vlb = V List Box() );
gb1 = Graph Builder(
invisible,
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 12 )
);
(Report( gb1 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb1 ) );
gb2 = Graph Builder(
invisible,
Variables( X( :weight ), Y( :height ) ),
Show Control Panel( 0 ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 13 )
);
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb2 ) );
gb3 = Graph Builder(
invisible,
Variables( X( :weight ), Y( :height ) ),
Show Control Panel( 0 ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :age == 14 )
);
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
vlb << append( Report( gb3 ) );
回复:使用 JSL 隐藏图形中的“Where (...)”文本框不用担心。 不管怎样,感谢您的帮助。 我会乱搞一下,看看是否能找到一些工作。
正如我所说,我是 JMP 的新手,因此目前并不是所有内容都得到了非常有效的简化。 我最初是直接在 vlistbox 中制作所有图形,但不确定如何将您的代码行合并到其中。 因此,我将所有数字从 vlistbox 中取出,并分别添加所有删除行。
我最初使用的是 By 子句,但将报告添加到 Web 报告时遇到了几个问题。 因此,我没有将按组脚本保存到剪贴板,而是使用将脚本保存到脚本窗口(所有对象),如下例所示:
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :Name( "Metabolite/Count" ) )
);
New Window( "PCstack - Graph Builder",
V List Box(
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "VCD at Split" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "Viability at Split" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "VCD at Inoc" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "PDL" )
),
Graph Builder(
Variables( X( :Passage Number ), Y( :Preculture Data ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
Where( :Name( "Metabolite/Count" ) == "PDT(h)" )
)
)
);
回复:使用 JSL 隐藏图形中的“Where (...)”文本框如果没有看到完整的脚本,就很难确定问题出在哪里。我的另一个问题是,为什么要在代码中的单个点执行所有删除操作,而不是在生成图形的位置执行删除代码?或者您是否在代码中使用 By 子句,这会将显示树结构更改为与单个独立图形完全不同的层次结构。
回复:使用 JSL 隐藏图形中的“Where (...)”文本框感谢您的帮助。
它对于单个图形效果很好,但现在不会将任何修改后的图形添加到我的 vlistbox 中。 当我尝试组合它们时,它总是吐出一个空白框。 我也尝试了 <
(Report( gb1 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb2 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb3 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb4 ) << top parent)[Text Box( 1 )] << delete;
//(Report( gb5 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb6 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb7 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb8 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb9 ) << top parent)[Text Box( 1 )] << delete;
(Report( gb10 ) << top parent)[Text Box( 1 )] << delete;
fig3 = expr(
New Window( "Production Bioreactor - Metabolites/Counts",
V List Box(gb1,gb2,gb3,gb4, gb6, gb7,gb8,gb9,gb10,gb11,gb12,gb13
)
));
回复:使用 JSL 隐藏图形中的“Where (...)”文本框在这种情况下,使用<<删除消息将影响您想要的更改,可能不会产生任何影响。 通过 << Visibility 消息可以进行更安全的更改。 使用 Collapse 参数使其不可见并且不节省其在窗口中的空间。
回复:使用 JSL 隐藏图形中的“Where (...)”文本框这应该有效
gb = Graph Builder(
Size( 531, 464 ),
Show Control Panel( 0 ),
Variables(
X( :Step ),
Y( :Name( "BR Metabolite/Count Data" ) ),
Overlay( :Run )
),
Elements(
Line( X, Y, Legend( 1 ) ),
Points( X, Y, Legend( 2 ), Jitter Limit( 0.2018 ) )
),
Where( :Name( "Metabolite/Count" ) == "pH" ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "pH" ), Image Export Display( Normal )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "pH vs. Step" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "pH" )} )
)
);
(Report( gb ) << top parent)[Text Box( 1 )] << delete;