列切換器和圖形產生器你好,
我有很多列,我將它們組合在一起。
在圖形產生器中,我有 X 軸常數,但 Y 軸應該具有列切換器功能,我們可以在其中選擇要從所述列組切換的參數。
首先,我告訴 JSL 組中應包含哪些列,以及哪一列應是我的第一列
colList = dttable << get column names( continuous );
col1 = colList[1];
這是程式碼和我收到的錯誤,
Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :batch_no ), Y( :col1 ) /*###*/ ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( :col1, {:colList} )
)
你能告訴我應該為 Y 變數寫什麼,以便我可以從第一列開始,然後新增列切換器。
先致謝
基礎資料分析與建模資料存取實驗設計視窗回覆:列切換器和圖形產生器您正在指定
:col1
冒號告訴 JMP 資料表中有一個名為「col1」的欄位(請參閱 JMP 文件中的範圍界定); Col1 是一個記憶體變量,而不是列。刪除冒號,您的程式碼應該可以工作。
回覆:列切換器和圖形產生器嗨,吉姆,
感謝您的協助。
我現在得到了圖表,但是列切換器仍然不起作用。
dtrelsplit << Newscript ("graph",
Graph Builder(
Size( 570, 621 ),<BR />
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :batch_no ),
Y(col1),
),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher(
col1, {colList}
),
),
Column Switcher cannot find specified column col1 in platform script</CODE></PRE>
<P>這是顯示的錯誤</P>
<BR />
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-724513" slang="en-US" mode="CREATE">回覆:列切換器和圖形產生器</LINGO-SUB>
<LINGO-BODY id="lingo-body-724513" slang="en-US" mode="CREATE">
<P>以下是我的修改</P>
<PRE><CODE class=" language-jsl">Graph Builder(
Size( 570, 621 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( <SPAN class="lia-emoticons-autosuggestions"><SPAN class="lia-emoticons-search-term">:batch_no</SPAN></SPAN> ), Y( as column(col1) ) ),
Elements( Points( X, Y, Legend( 8 ) ) ),
Column Switcher( col1, colList )
)
;
colList 是一個列表,因此不需要第二組 {}
回覆:列切換器和圖形產生器謝謝
回覆:列切換器和圖形產生器JMP 是否變得更嚴格了?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
colLst = { :Height, :Weight, :Age };
// doesn't work
dt << New Script( "test",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, colLst )
)
);
// does work
dt << New Script( "test2",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, { :Height, :Weight, :Age } )
)
);
// does work
Eval( Eval Expr( dt << New Script( "test3",
Graph Builder(
Variables( X( :Weight ), Y( :Height ) ),
Elements( Points( X, Y ) ),
Column Switcher( :Height, Expr( colLst ) )
)
)));
回覆:列切換器和圖形產生器您參考的是哪兩個版本的 JMP?
回覆:列切換器和圖形產生器JMP19。
編輯:我很難判斷 colList 變數在 JMP18 或更早版本中是否有效。我之所以感到驚訝,是因為我找到了一些關於使用將清單傳遞給變數以供進一步使用的參考資料。
回覆:列切換器和圖形產生器@雷塞爾 ,
因此,使用新執行的 JMP 18 乾淨實例,您所包含的、暗示在 JMP 18 中為您工作的範例腳本對我來說不起作用。
問題是由於 JMP 為您包含的範例腳本提供的隔離,其中第一行
Names Default To Here( 1 );
此函數將建立的變數隔離為腳本執行時獨有的。因此,變數 collist 僅在腳本運行時才為腳本所知。當儲存到資料表中的嵌入式腳本執行時,這是一個新的腳本環境,而且它沒有定義變數 collist。
兩個版本的程式碼之所以能夠正確執行,是因為在第一種情況下,值被硬編碼到腳本中,而在第二種情況下,
Expr( colLst )
在執行程式碼之前將變數 colist 擴展為硬編碼值,使嵌入在資料表中的腳本成為腳本的硬編碼版本。
因此,就您而言,JMP 19 與版本 18 相比沒有變化
回覆:列切換器和圖形產生器啊,好的。我想這應該是一個「命名空間」問題吧?
另外,我並沒有聲稱它在JMP18中對我有效。我當時想知道為什麼這裡提出的、看起來如此清晰的解決方案不起作用。然後我錯誤地懷疑這可能與JSL的演變有關。事實並非如此。
謝謝您的澄清!
回覆:列切換器和圖表建立器很棒的對話:)
用放大鏡仔細觀察JSL的螺帽和螺栓…
我只是想知道變數()和Column Switcher() 之間的差異。
Variables( ... Y( as column(col1) ) ),
Column Switcher( col1, colList )
這個也行:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
cols = dt << get column names( continuous );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
還有這個:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(Column(col1) ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
哪些方法行不通:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
cols = dt << get column names( continuous, "String" );
col1= cols[1];
gb = dt << Graph Builder(
Size( 437, 413 ),
Graph Spacing( 4 ),
Variables( X(col1 ), ),
Elements( bar( X ), ),
Column Switcher( col1, cols )
);
所以, 列切換器()可以接受字串類型。
變數()需要一個名稱,或一個欄位(透過As Column()或柱子()建立)。
回覆:列切換器和圖形產生器@hogi您的結果的意思是它不是環境或名稱空間問題,而是其他問題?
回覆:列切換器和圖形產生器不,正如@txnelson所解釋的,表腳本的問題是一個命名空間問題。
字串、名稱和列只是我們可以了解的其他東西。