如何在圖表中全域設定級別<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我使用的一些腳本是根據圖表創建的。 通常,這些圖表包含 JMP 分成等級的數據,但就我的目的而言,它們實際上是相同的。 例如,以下程式碼用於繪製跨站點的平均排除率圖表。
圖表(
X ( :識別碼) ,
是(意思是( :排除率)) ,
將誤差線加入平均值中(姓名( “信賴區間(合併)” )( 0.95 )) ,
疊加軸<< {{格式( “固定十二月” , 12 , 3 ) ,最小( 0.935 ) ,最大限度( 0.9975 ) ,
公司( 0.005 ) ,輕微蜱蟲( 1 )}} ,
疊加堆疊軸<< {{格式( “固定十二月” , 12 , 0 ) ,最小( - 1.5 ) ,最大限度( 8.5 ) ,公司( 1 ) ,
輕微蜱蟲( 1 )}} ,
等級[ 1 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 2 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 3 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 4 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 5 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 6 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
等級[ 7 ] << {顏色( - 4221340 ) ,標記( 29 )} ,
是[ 1 ] <<點圖( 1 ) ,
發送至報告(
派遣({} , “102” ,比例盒, {格式( “百分” , 6 , 0 ) ,顯示主要網格( 1 )}) ,
派遣({} , ”” ,軸盒( 2 ) , {添加軸標籤( “平均值(排除率)” )}) ,
派遣({} , “平均值(排除率)” ,文字編輯框, {設定字體大小( 20 )}) ,
派遣(
{} ,
“圖表圖” ,
框架盒,
{框架尺寸( 704 ,第536章) ,標記尺寸( 6 )}
)
)
)
當為上一個報告建立腳本時,有七個站點,但現在有十個,因此最後三個圖使用預設設定。 當級別數量發生變化時,有沒有辦法全域設定這些級別,而不是單獨設定這些級別?
回覆:如何在圖表中全域設定級別所以,我現在是另一個報告週期,並發現了去年的這條線索。 我試過普羅茲昨天的建議,效果很好,直到它停止這樣做。 我第一次使用由普羅茲它工作得很好。 對於資料集中的每個級別,圖表上的每個點都應用了正確的顏色和標記類型。 當我嘗試在另一個數據表腳本中使用該技術時,它失敗了;執行腳本時沒有產生任何錯誤,但使用了 JMP 的預設顏色和標記,而不是我在腳本中定義的顏色和標記。 有趣的是,現在我修改的第一個腳本也使用 JMP 預設值,而不是我在腳本中定義的值。
這是代碼:
Names Default To Here(1);
Delete Symbols();
dt = Current Data Table();
UniqueValueList = Function({inList},
{Default Local},
tmp = [=> 0];
Insert Into(tmp, inList);
tmp << Get Keys;
);
identCodes = :IDENT Code << Get Values;
uniqueCodes = UniqueValueList(identCodes);
nCrossings = NItems(uniqueCodes);
dt << Chart(
X(:IDENT Code),
Y(Mean(:Read Rate)),
Add Error Bars to Mean(Name("Confidence Interval (pooled)")(0.95)),
Overlay Axis << {{Format("Fixed Dec", 12, 2), Min(0.77), Max(1.05), Inc(0.02),
Minor Ticks(1)}},
Overlay Stack Axis << {{Min(-10)}},
For(i = 1, i <= nCrossings, i++,
Level[i] << {Colors(-4221340), Markers(29)}
),
Y[1] << Point Chart(1),
SendToReport(
Dispatch(
{},
"102",
ScaleBox,
{Format("Percent", 6, 0), Minor Ticks(1), Show Major Grid(1),
Show Minor Grid(0)}
),
Dispatch({}, "", AxisBox(2), {Add Axis Label("Mean(Read Rate)")}),
Dispatch({}, "Mean(Read Rate)", TextEditBox, {Set Font Size(20)}),
Dispatch(
{},
"Chart Graph",
FrameBox,
{Frame Size(1056, 464), Marker Size(6)}
)
)
)根據我從 JSL 偵錯器中看到的內容, nCrossings已正確設置,但圖表語句中的 For 循環似乎被忽略。 不幸的是,單步執行程式碼並沒有幫助,因為 Chart 是單一語句,因此偵錯器不會單步執行其程式碼。
我究竟做錯了什麼?
回覆:如何在圖表中全域設定級別這看起來可能就是我正在尋找的東西。 我想知道是否可以在圖表程式碼中放置一個 For 循環,但我不知道我可以在 JSL 中建立使用者定義的函數,或者在這種情況下需要這樣做。 我會嘗試你的解決方案。
回覆:如何在圖表中全域設定級別您可以在圖表程式碼中放置一個循環。
dt =新表( “例子” ,新增行( 8 ) ,
新專欄( “身份識別碼” ,特點, “名義” ,
設定值( { “AA” , “AA” , “AA” , “BB” , “BB” , “抄送” , “抄送” , “抄送” } ) ) ,
新專欄( 「排除率」 ,數位, “連續的” ,格式( “最好的” , 12 ) ,
設定值( [ 0.05 , 0.07 , 0.08 , 0.5 , 0.6 , 0.4 , 0.3 , 0.2 ] ) )
) ;
身分代碼= dt :識別碼<<獲取值;
唯一代碼=取得唯一值(身分代碼) ;
n 程式碼=尼特姆斯(唯一代碼) ;
dt <<圖表(
X ( :識別碼) ,
是(意思是( :排除率)) ,
將誤差線加入平均值中(姓名( “信賴區間(合併)” )( 0.95 )) ,
疊加軸<< {{格式( “固定十二月” , 12 , 3 ) ,最小( 0.935 ) ,最大限度( 0.9975 ) ,
公司( 0.005 ) ,輕微蜱蟲( 1 )}} ,
疊加堆疊軸<< {{格式( “固定十二月” , 12 , 0 ) ,最小( - 1.5 ) ,最大限度( 8.5 ) ,公司( 1 ) ,
輕微蜱蟲( 1 )}} ,
// 為每個等級分配相同的顏色和標記
為了(我= 1 ,我<= n 程式碼,我++,
等級[我] << {顏色( - 4221340 ) ,標記( 29 )} ,
) ,
是[ 1 ] <<點圖( 1 ) ,
發送至報告(
派遣({} , “102” ,比例盒, {格式( “百分” , 6 , 0 ) ,顯示主要網格( 1 )}) ,
派遣({} , ”” ,軸盒( 2 ) , {添加軸標籤( “平均值(排除率)” )}) ,
派遣({} , “平均值(排除率)” ,文字編輯框, {設定字體大小( 20 )}) ,
派遣(
{} ,
“圖表圖” ,
框架盒,
{框架尺寸( 704 ,第536章) ,標記尺寸( 6 )}
)
)
)
這是 get_unique_values 函數的程式碼:
取得唯一值=功能( {清單中} ,
{預設本地} ,
tmp = [ => 0 ] ;
插入( tmp ,清單中) ;
tmp <<取得鑰匙;
) ;
回覆:如何在圖表中全域設定級別謝謝,但這不是我所說的全球性的意思。 我不想將 JMP 鎖定為以相同的方式建立所有圖表。 我有一個針對正在進行的專案中的特定資料集的腳本,其中層級的數量可能會隨著報告週期的不同而變化。 JMP生成腳本的方式,級別的設定是明確的,所以我想知道是否有辦法全域設定級別在圖表內。 我有一個類似的腳本,用於具有 46 個層級的資料集,並且該腳本生成了 46 個層級參數行,儘管每個層級都具有完全相同的設定。
JMP 似乎假定等級始終是明確的,並且使用者始終希望它們在圖表中以不同的方式表示。 在某些情況下確實如此,但此圖表中被視為等級的是 x 軸上的類別。
回覆:如何在圖表中全域設定級別您可以在首選項中設定預設值:
檔案==>首選項==>圖表
可以在那裡指定預設標記和顏色集

如果這沒有達到您想要的效果,那麼您的腳本可以輕鬆修改以測試找到的等級數,並根據需要產生程式碼。