無法在圖形生成器上突出顯示並選擇相應的行大家好,
我在圖形生成器中有來自多個數據表的多個圖形。 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回复:無法在圖形生成器上突出顯示並選擇相應的行您沒有提供足夠的信息(細節)來真正允許任何真正的診斷。 腳本的副本和輸出圖像真的很有幫助