변동성 차트의 Y축에 단위 추가80개의 장치에서 테스트 항목 세트가 있습니다. 변동성 차트를 플로팅하고 있는데 Y축에 단위를 추가하고 싶습니다. 다른 열에 단위가 있습니다. 열 이름은 기본 레이블 집합입니다. 레이블에 단위를 추가하는 방법이 있습니까? 사용 가능한 스크립트가 있습니까? 제가 원하는 아웃아웃의 샘플 시트와 샘플 형식을 첨부합니다.

Re: 변동성 차트의 Y축에 단위 추가고맙습니다 @txnelson 그리고 @cwillden . 두 스크립트 모두 원래 질문에 대해 작동합니다.
감사,
벤캇
Re: 변동성 차트의 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^)")));
결과는 다음과 같습니다.
Re: 변동성 차트의 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 )
)
);
)
);
Re: 변동성 차트의 Y축에 단위 추가@cwillden 감사합니다, 나는 첨부된 형식으로 표시된 시트를 조옮김했습니다. 단위를 추가하는 방법을 알려주세요.
감사
Re: 변동성 차트의 Y축에 단위 추가더 넓은 형식(즉, TestInstance에서 "값" 열 분할)이 더 쉬울 것이라고 생각하지만 긴 형식으로 유지하려면 루프에서 SendToByGroup() 부분을 구성하는 것이 가장 간단한 방법일 수 있습니다. 및 그룹 레벨별로 단위를 잡는 단계를 포함합니다.오늘 밤 늦게 도와드릴 수는 있지만 지금 당장 달려가야 합니다.
Re: 변동성 차트의 Y축에 단위 추가감사 @cwillden 하지만 200개 이상의 테스트 항목이 있으므로 이 방법은 테스트 항목의 큰 집합에 적합하지 않을 수 있습니다. 루프와 함께 사용할 생각이 있습니까?
감사해요.
Re: 변동성 차트의 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" )}
)
)
)
)