変動性グラフの Y 軸に単位を追加する80 台のデバイスで一連のテスト項目をテストしています。 変動性チャートをプロットしています。単位を Y 軸に追加したいと考えています。 私は別の列にユニットを持っています。 列名はデフォルトのラベル セットです。 単位をラベルに追加する方法はありますか?利用可能なスクリプトはありますか?添付は、私が欲しい outout のサンプル シートとサンプル フォーマットです。

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 軸に単位を追加するこれを 1 回行う必要がある場合は、軸ラベルをクリックして、必要なものを入力します。これを繰り返し行う必要がある場合は、必要な内容を入力してスクリプトを保存してください。このスクリプトを任意の将来のテーブルに向けます。
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" )}
)
)
)
)