Re:モーダルウィンドウに基づくグラフで「Groupby」値が機能しない私は経由で問題を理解しましたこの郵便受け。
char(set_groupby)の代わりにColumn(listDT、set_groupby)を使用する。
Row Legend(
//group by this
Column(listDT,set_groupby),
Color( 1 ),
Color Theme( "JMP default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}モーダルウィンドウに基づくグラフで「Groupby」値が機能しないやあ、
(コンテキストに関する注意:データセット内の各ラベル(A、B、C、D、およびE)のグラフの作成を自動化するグラフテンプレート(添付のスクリプトを参照)に取り組んでおり、それを同じ出力ウィンドウに追加します簡単にエクスポートして共有できます。 ここでは、スクリプトの何が問題になっているのかを証明するための例として、ラベル「A」の単一のグラフを使用しています。 )。
モーダルウィンドウでのユーザー選択から選択したGroup-by変数をJMPスクリプトが読み取れないという問題が発生しています。 以下の例のように、任意のgroup-by変数であり、凡例と色分けスキームを持つデータから「groupby」列名を選択するようにユーザーに求めています。
添付のJMPデータテーブルでは、おもちゃのデータに一般的な「グループ」列があります。 ただし、ユーザーはテーブルから任意の文字変数(製造サイト、バッチ、プロセス、定式化など)を選択し、グループ化された凡例と色分けスキームを使用できる必要があります。
これが私のJMPスクリプトです。
//元のデータテーブルのデータを選択しますNamesDefault To Here(1); dt =現在のデータテーブル(); / * 2022年2月28日編集get列名を1.getx軸変数2.ドットに色を付けるためのgetgrouping変数-グループがない場合はnoneオプションである必要があります-set_groupbyが "noneの場合は後で論理ステートメント"、その後いいえ-また、どの配色を使用するかをユーザーに尋ねます。 JMP自動カラー(青と赤)またはなし(バッチIDなどで手動でカラーリングする場合)ソースを参照してください:https://www.jmp.com/support/help/zh-cn/15.2/index.shtml#page /jmp/get-column-names.shtml * / column_names = dt << Get Column Names(Numeric、character、String); //実行する:// names_for_groupby_select = // group byは文字変数のみである必要があるため、groupby_col_names = dt << Get Column names(character、String); nw1 = New Window( "Set X-axis and group by variable"、<< Modal、Text Box( "Select the x-axis column。")、 テキストボックス( "時間またはバッチ")、xaxisselect = Radio Box(column_names)、テキストボックス( "group-by列名を選択してください。")、groupby_col = Radio Box(groupby_col_names)、Hリストボックス(ボタンボックス( " OK "、answers = Eval List({set_xlabel = xaxisselect << get selected、set_groupby = groupby_col << get selected}); nw1 << close window;)、Button Box(" Cancel "))、//ポップアップウィンドウサイズを変更<<サイズウィンドウ(300,500)); //キャンセルまたは赤いXがクリックされた場合は、スクリプトを停止しますIf(nw1 == {Button(-1)}、Stop()); groupbyvar = char(set_groupby); / *データ* ///一意のPQAを取得col9 = Column(dt、 "Label(y-axis)"); unique_label = Associative Array(col9)<<キーを取得; // jmpレポートウィンドウを初期化しますnw = New Window( "results"、container = V List Box()); //各PQAをループし、各反復で//初期化されたjmpレポートウィンドウに結果を貼り付けます。 for(i = 1、i <= N Items(unique_label)、i ++、content = V List Box(label_val = unique_label [i]; dt << Select Where(:Name( "Label(y-axis)")== label_val); //選択したデータをサブセット化しますが、サブセットデータテーブルのポップアップを非表示にしますlistDT = dt << Subset(invisible、output table name( "Subset where Label is" || label_val)、Selected rows only(1)、選択された列のみ(1)); //該当する場合は、測定単位をフォーマットしますcol4 = Column(listDT、 "Measurement Units"); units = col4 [1]; //単位がnullでない場合は、スクリプト内の括弧で連結します。 それ以外の場合は、連結しないでください。 // this ifelseステートメントの結果を文字列としてunits_formattedという変数に保存します。 //これは、上の行に単位値が作成された後でなければなりません。 //注:アルゴリズムが機能するように条件を切り替えました。 units_formatted = If(Is Missing(units)、 ""、Is String(units)、 "(" || units || ")"); //スケーリングのためのx軸上のアイテムの数//つまりバッチまたは時点の数//一意のPQAを取得colx = Column(listDT、set_xlabel); // "x軸"); unique_xval = Associative Array(colx)<<キーを取得; //注:フォントサイズは後で、または必要に応じて改善される可能性がありますfont_size = If(N items(unique_xval)<= 9、9、N items(unique_xval)> 9、5); //一般的なグラフ(管理図またはプロセスグラフにすることができます)Oneway(SendToByGroup({:Name( "Label(y-axis)")== label_val}、Y(:Result)、X(char(set_xlabel))、/ /:Name( "x axis"))、Connect Means(1)、Grand Mean(0)、SendToReport(Dispatch({}、 "Result"、TextEditBox、{Set Text(label_val || units_formatted)})、//フォントサイズ:Dispatch({}、 "2"、ScaleBox、{Label Row(Set Font Size(font_size))})、//グラフのもの:Dispatch({}、 "Oneway Plot"、FrameBox、{Frame Size(1000 、300)、DispatchSeg(CustomStreamSeg(6)、{Line Color( "Gray")})、Row Legend(// group by this //:Name( "Group")、//または単にGroupが機能しすぎるchar(set_groupby )、// <<ユーザーが指定する必要があります。 // set_groupby、//実行する:このバグを修正してください! Color(1)、Color Theme( "JMP default")、// TO DO:<<ユーザーが指定する必要があります。 Marker(0)、Marker Theme( "")、Continuous Scale(0)、Reverse Scale(0)、Excluded Rows(0))})))); );コンテナ<< Append(content));
このJMPスクリプトでは、x軸の列の選択が機能するため(モーダルウィンドウの例と以下の結果のグラフを参照)、group-by変数の参照も機能すると想定しました。 ただし、出力には、group-by変数または凡例がないグラフが生成されます。 私のコードはここで間違って何をしていますか?
モーダルウィンドウ:
ラベル「A」のJMP出力例グラフ
データ表グラフィックス他のスクリプティングウィンドウズ