將單位加入變異性圖表的 Y 軸我有一組測試項目在 80 台設備上進行測試。 我正在繪製變異性圖表,我想將單位新增到 Y 軸。 我將單位放在不同的列中。 列名稱是預設標籤集。 有沒有辦法將單位加入標籤中?有可用的腳本嗎?附件是我想要的輸出的樣本表和樣本格式。

回覆:在變異性圖表的 Y 軸上新增單位謝謝@tx尼爾森和@cwillden 。這兩個腳本都適用於原始問題。
謝謝,
文卡特
回覆:在變異性圖表的 Y 軸上新增單位這其實就是我對分裂的想法。幹得好,吉姆。
我正在考慮的替代方法將避免分割,並且 y 軸標籤只是單位。如果該單位丟失,我只是將“未知單位”放在它的位置,但你可以在那裡做任何你想做的事情。此方法建構腳本的“SendToByGroup”部分。這適用於您的範例資料:
Names Default to Here(1);
dt = Current Data Table();
/**** Get units for each level of TestInstance ***/
testList = Associative Array(dt:TestInstance) << get keys;
unitList = {};
for(i = 1, i<=N Items(testList), i++,
temp = dt:Unit[min(dt << Get Rows Where(:TestInstance == testList[i]))];
Insert Into(unitList, If(Is Missing(temp),"Unknown Unit", temp ));
);
unitArray = Associative Array(testList, unitList);
/**** Build the Var Chart Script ****/
varChartStr = "Variability Chart(
Y( :value ),
X( :PackageID ),
Std Dev Chart( 0 ),
By( :TestInstance )";
//Loop through levels of TestInstance to add the unit label for the y-axis
for(i=1, i<= N Items(testList), i++,
varChartStr = varChartStr || Eval Insert("\[,
SendToByGroup(
{:TestInstance == "^testList[i]^"},
SendToReport(
Dispatch(
{"Variability Gauge TestInstance=^testList[i]^",
"Variability Chart for value"},
"value",
TextEditBox,
{Set Text( "^unitArray[testList[i]]^" )}
)
)
)]\");
);
//Close the script
varChartStr = varChartStr || "
);";
//Run the script
eval(parse(varChartStr));
//Add the script to the data table
Eval(Parse(Eval Insert("dt << New Script(\!"Variability Chart\!", ^varChartStr^)")));
結果如下:
回覆:在變異性圖表的 Y 軸上新增單位這是一個腳本,透過將單元新增至測試名稱來產生您想要的內容。我針對提供的 Excel 文件運行了此操作。該腳本假定在運行腳本之前已在 JMP 中開啟資料表。
Names Default To Here( 1 );
// This script assumes you have opened the Excel file as a JMP Data Table
dt = Current Data Table();
// Split the data into the proper form for analysis
dtSplit = dt << Split( Split By( :TestInstance ), Split( :value ), Remaining Columns( Drop( :Unit ) ), Sort by Column Property );
// Create a data table to determine the units for each test
dtUnits = dt << Summary( Group( :TestInstance, :Unit ), Freq( "None" ), Weight( "None" ), Link to original data table( 0 ) );
// Loop across the data table and add the Units to the different Test Columns in the data table
For( i = 1, i <= N Rows( dtUnits ), i++,
If( dtUnits:Unit[i] != "",
Column( dtSplit, dtUnits:TestInstance[i] ) << set name(
Column( dtSplit, dtUnits:TestInstance[i] ) << get name || " ( " || dtUnits:Unit[i] || " )"
)
)
);
// Delete the Units data table since it is no longer needed
close( dtUnits, nosave );
// Create a window to place all of the charts into
nw = New Window( "Variability Chart by PackageID", vlb = V List Box() );
// Get all of the column names
colNames = dtSplit << get column names( string, numeric );
// Loop across all of the columns and when a Test column is found,
// then create a chart for it
For( i = 1, i <= N Items( colNames ), i++,
If( Contains( colNames[i], "Test" ) == 1,
testList = ":Name(\!"" || colNames[i] || "\!")";
Eval(
Substitute(
Expr(
vlb << append( dtSplit << Variability Chart( Y( __theList__ ), X( :PackageID ), Std Dev Chart( 0 ) ) )
),
Expr( __theList__ ), Parse( testList )
)
);
)
);
回覆:在變異性圖表的 Y 軸上新增單位@cwillden謝謝,我轉置了所附格式中顯示的表格。 請告訴我增加單位的方法。
謝謝
回覆:在變異性圖表的 Y 軸上新增單位我認為採用更寬的格式會更容易(即拆分 TestInstance 上的“值”列),但如果您想將其保留為長格式,最直接的方法可能是在循環中構造 SendToByGroup() 部分並按群組層級取得每個單元。今晚晚些時候我當然可以幫助你,但我現在必須跑。
回覆:在變異性圖表的 Y 軸上新增單位謝謝@cwillden但我有 200 多個測試項目,所以這個方法可能不適合那麼大的測試項目集。 你有什麼想法將它與循環一起使用嗎?
謝謝。
回覆:在變異性圖表的 Y 軸上新增單位如果您必須執行此操作一次,只需單擊軸標籤並輸入您想要的任何內容。如果您必須重複執行此操作,請輸入您想要的內容並儲存腳本。將此腳本指向任何未來的表:
Variability Chart(
SendToByGroup( {:TestInstance == "Test1"} ),
Y( :value ),
SendToByGroup( {:TestInstance == "Test1"}, Y( :value ) ),
SendToByGroup( {:TestInstance == "Test2"}, Y( :value ) ),
SendToByGroup( {:TestInstance == "Test3"}, Y( :value ) ),
SendToByGroup( {:TestInstance == "Test4"}, Y( :value ) ),
X( :PackageID ),
Std Dev Chart( 0 ),
By( :TestInstance ),
SendToByGroup(
{:TestInstance == "Test1"},
SendToReport(
Dispatch(
{"Variability Gauge TestInstance=Test1",
"Variability Chart for value"},
"value",
TextEditBox,
{Set Text( "Unknown" )}
)
)
),
SendToByGroup(
{:TestInstance == "Test2"},
SendToReport(
Dispatch(
{"Variability Gauge TestInstance=Test2",
"Variability Chart for value"},
"value",
TextEditBox,
{Set Text( "mA" )}
)
)
),
SendToByGroup(
{:TestInstance == "Test3"},
SendToReport(
Dispatch(
{"Variability Gauge TestInstance=Test3",
"Variability Chart for value"},
"value",
TextEditBox,
{Set Text( "uA" )}
)
)
),
SendToByGroup(
{:TestInstance == "Test4"},
SendToReport(
Dispatch(
{"Variability Gauge TestInstance=Test4",
"Variability Chart for value"},
"value",
TextEditBox,
{Set Text( "mA" )}
)
)
)
)