无法在图形生成器上突出显示并选择相应的行大家好,
我在图形生成器中有来自多个数据表的多个图形。 2件事情要注意:
- 它们都是使用 JSL 创建的。
- 除最后一个外,它们中的大多数已附加到 JMP 窗口。
出于某种原因,我只能突出显示最后一个图形生成器图上的数据(并选择其表中的相应行)。
为什么会这样,有什么办法可以解决吗?
谢谢。
大规模定制回复:无法在图形生成器上突出显示并选择相应的行这很容易发生。 将您的参考 JSL 更改为
gb = dt << 图形生成器(…………)回复:无法在图形生成器上突出显示并选择相应的行你好@txnelson .
这正是我正在做的。
有效。 我在第二次创建绘图时直接附加了它,而不是将它附加到一个单独的函数中。 我认为问题可能是因为所有图形构建器对象都来自不同的数据表并在其中使用变量,因此当重新运行表达式时 JMP 不知道每个图形构建器使用哪些表并且变量不是'吨定义。
谢谢您的帮助!
回复:无法在图形生成器上突出显示并选择相应的行您的 GBList 包含指向已运行输出的输出的指针。需要附加的是 Graph Builder(..........) JSL,因此它在 Display 对象中运行。
如果我正确阅读了您的框架代码,那么我认为您正在做的是从不同的图形构建器收集信息,然后使用该信息对输出进行排序。如果是这种情况,并且您需要输出是动态的而不是静态的,您可能需要在输出显示窗口中再次运行图形。我过去做过很多次。有时我也会采取稍微不同的方法。如果您使用 R2 进行排序,那么我建议您使用响应筛选平台获取所需的 R2 值,并根据该结果根据该顺序生成所需的输出。
回复:无法在图形生成器上突出显示并选择相应的行我试图附加图形生成器对象本身,但这给出了这个错误:
Not a display in access or evaluation of 'Append' , Append( ReorderedPlotBoxList[i] ) /*###*/
回复:无法在图形生成器上突出显示并选择相应的行问题是您附加的是图形生成器的报告,而不是图形生成器对象。看看下面脚本的结果,你会看到附加的报告变成了静态图,其中嵌入的对象没有
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
mygb = Expr(
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Line( X, Y, Legend( 7 ) ) )
);
);
mygb;
nw = new window("Report",);
nw << append(report(gb));
nw << append(mygb);
回复:无法在图形生成器上突出显示并选择相应的行你好@txnelson和@Thierry_S .
谢谢回复。 出于某种原因,我之前的回复被标记为滥用,所以这里重写:
不幸的是,由于保密协议,我无法分享整个剧本或情节,但我可以尝试提供更多细节:
我正在使用此功能创建窗口:
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
Title,
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
然后我在 for 循环中创建 Graph Builder 对象并将它们添加到列表中:
GB = GraphBuilder(...);
InsertInto(GBList, GB);
然后我通过调用此函数将它们附加到窗口中的显示对象(阵容框):
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);我使用图形生成器列表和 R^2 值列表调用该函数。
AppendPlotBasedOnDescendingValue(GBList, R2List, LineupBox);
它有效,但我无法选择/突出显示表/图形生成器上的数据。
谢谢。
回复:无法在图形生成器上突出显示并选择相应的行谢谢@txnelson和@Thierry_S为答复。
不幸的是,由于保密协议的原因,我无法分享整个剧本或情节,但我可以尽可能提供更多细节。
这是窗口的样子:
CreateResultsWindow = Function(
// Inputs
{Title},
// Local variables
{
Window, ReturnList,
OutLineBox1, BorderBox1, LineUpBox1
},
Window = NewWindow(Title,
OutLineBox1 = OutLineBox(
"Outline Box 1",
BorderBox1 = BorderBox(
Left(40), Right(40), Top(40), Bottom(40), Sides(30),
LineUpBox1 = LineUpBox(NCol(2));
);
);
);
ReturnList = {};
InsertInto(ReturnList, OutLineBox1);
InsertInto(ReturnList, LineUpBox1);
EvalList ( ReturnList );
);
我为多种类型的图多次调用此函数,并像这样附加到 Lineup Box:
创建多个 GB 对象并将它们插入到 GB 列表中
GB = DT << GraphBuilder(...);
InsertInto(GBList, GB);
AppendPlotBasedOnDescendingValue(GBList, R2List, LineUpBox1);
AppendPlotBasedOnDescendingValue = Function(
// Inputs
{PlotBoxList, ValueList, AppendBox},
// Local variables
{i, RankList, ReorderedPlotBoxList},
// Vector of indices used as subscript into original list
RankList = RankIndex(ValueList);
// Reorder plots based on values
ReorderedPlotBoxList = PlotBoxList[RankList];
// Plot by descending
For(i=NItems(ReorderedPlotBoxList), i>=1, i--,
AppendBox << Append(Report(ReorderedPlotBoxList[i]));
ReorderedPlotBoxList[i] << CLoseWindow;
);
);
它被正确附加,但我无法选择/突出显示数据表/图表。
谢谢。
回复:无法在图形生成器上突出显示并选择相应的行你好,
作为@txnelson提到,这几乎不可能用您提供的信息来诊断您的问题。 在这个阶段我唯一能想到的是将图形附加到新窗口的方式可能存在的问题:您是使用图形元素捕获还是将整个图形附加到新窗口? 前者将消除连接回表。
最好的,
TS回复:无法在图形生成器上突出显示并选择相应的行您没有提供足够的信息(细节)来真正允许任何真正的诊断。 脚本的副本和输出图像真的很有帮助