皆さんこんにちは、
複数のデータテーブルからグラフビルダーに複数のグラフがあります。 注意すべき2つのこと:
- それらはすべてJSLを使用して作成されました。
- それらのほとんどは、最後のウィンドウを除いてJMPウィンドウに追加されています。
何らかの理由で、最後のグラフビルダープロットのデータのみを強調表示できます(そして、そのテーブルで対応する行を選択しました)。
それはなぜですか、それを修正する方法はありますか?
ありがとう。
実際の診断を実際に行うのに十分な情報(詳細)を提供していません。 スクリプトのコピーと出力の画像は本当に役立ちます
ありがとう@txnelsonそして@Thierry_S返事のために。
残念ながら、NDAの理由により、スクリプト全体またはプロットを共有することはできませんが、可能な場合は詳細を提供できます。
ウィンドウは次のようになります。
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 );
);
複数のタイプのプロットに対してこの関数を複数回呼び出し、次のようにラインナップボックスに追加しています。
複数のGBオブジェクトを作成し、それらをGBリストに挿入します
GB = DT << GraphBuilder(...);
InsertInto(GBList, GB);
いくつかの値(私の場合はR ^ 2)に基づいてそれらを追加します。
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;
);
);
正しく追加されますが、データテーブル/プロットを選択/強調表示できません。
だからあなたの質問に
@Thierry_Sグラフィック要素を使っていると思います(ラインナップボックス)
ありがとう。
こんにちは@txnelsonそして@Thierry_S 。
返信いただきありがとうございます。 何らかの理由で、私の以前の返信は不正使用としてマークされていたので、ここに書き直します:
残念ながら、NDAのため、スクリプト全体またはプロットを共有することはできませんが、詳細を提供することはできます。
私はこの関数を使用してウィンドウを作成しています:
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);
動作しますが、テーブル/グラフビルダーでデータを選択/強調表示できません。
ありがとう。