안녕하세요, 도움이 필요합니다 :'(
다른 열 출력으로 동일한 var 차트를 그릴 수 있는 범용 스크립트를 만들고 싶습니다.
예를 들어:
테이블이 2개 있어요
1 번 테이블
| 링크 | 힘 | 온도 | 압력 | 수준 |
| 1 | 50 | 88 | 2 | - |
| 2 | 60 | 70 | 1 | - |
| 삼 | 40 | 89 | 삼 | - |
| 4 | 50 | 88 | 1 | - |
표 2
| 링크 | 힘 | 온도 | 압력 | 시각 | 수준 |
| 1 | 50 | 88 | 2 | 5 | 삼 |
| 2 | 60 | 70 | 1 | 6 | 4 |
| 삼 | 40 | 89 | 삼 | 15 | 5 |
| 4 | 50 | 88 | 1 | 4 | 4 |
내 Var 차트는 다음과 같습니다.
X(:링크)
Y(:힘, :온도, :압력, :시간, :레벨)
테이블 1에 일부 열이 누락된 경우에도 두 테이블에 두 var 차트를 모두 그릴 수 있는 스크립트를 어떻게 만듭니까?
이것이 작동하는 한 가지 방법입니다.
두 테이블을 가상으로 연결합니다(예: Table1에는 Table2 열에 대한 참조가 포함됨).
그리고 그래프를 생성합니다.
Win10에서 JMP16으로 테스트했습니다.
Names Default To Here( 1 );
dt1 = New Table( "Table1",
Add Rows( 4 ),
Compress File When Saved( 1 ),
New Column( "Link", Numeric, "Continuous", Format( "Best", 12 ), Set Selected, Set Values( [1, 2, 3, 4] ) ),
New Column( "force", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [50, 60, 40, 50] ) ),
New Column( "temp", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [88, 70, 89, 88] ) ),
New Column( "pressure", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2, 1, 3, 1] ) ),
New Column( "level", Character( 16 ), "Nominal", Set Values( {"-", "-", "-", "-"} ) )
);
dt2 = New Table( "Table2",
Add Rows( 4 ),
Compress File When Saved( 1 ),
New Column( "Link", Numeric, "Continuous", Format( "Best", 12 ), Set Selected, Set Values( [1, 2, 3, 4] ) ),
New Column( "force", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [50, 60, 40, 50] ) ),
New Column( "temp", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [88, 70, 89, 88] ) ),
New Column( "pressure", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [2, 1, 3, 1] ) ),
New Column( "time", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [5, 6, 15, 4] ) ),
New Column( "level", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [3, 4, 5, 4] ) )
);
// to get link working, save is needed
dt1 << save( "$TEMP\" || (dt1 << get name()) || ".jmp" );
dt2 << save( "$TEMP\" || (dt2 << get name()) || ".jmp" );
dt2:LInk << set property( "Link ID", 1 );
dt1:Link << set Property( "Link Reference", {Reference Table( dt2 )} );
dt1 << Add Properties to Table(
{New Script(
"force & 4 more vs. Link",
Graph Builder(
Size( 514, 444 ),
Show Control Panel( 0 ),
Graph Spacing( 5 ),
Variables(
X( :Link ),
Y( :force ),
Y( :temp, Position( 1 ) ),
Y( :pressure, Position( 1 ) ),
Y( Referenced Column( "time[Link]", Reference( Column( :Link ), Reference( Column( :time ) ) ) ) ),
Y( Referenced Column( "level[Link]", Reference( Column( :Link ), Reference( Column( :level ) ) ) ), Position( 2 ) )
),
Elements( Position( 1, 1 ), Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 65 ) ), Smoother( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 66 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y( 1 ), Y( 2 ), Legend( 67 ) ), Smoother( X, Y( 1 ), Y( 2 ), Legend( 68 ) ) )
)
)}
);
dt1 << run script( "force & 4 more vs. Link" );

커뮤니티에 오신 것을 환영합니다!
다른 열이 있는 이 2개의 테이블이 주어지면

다음 스크립트는 두 가지 모두에 대해 작동합니다.
Names Default To Here( 1 );
dt = Current Data Table();
// get the column names for the columns in the current data table
colNames = dt << get column names( string );
// Remove the column called Link from the list
Try( Remove From( colNames, Contains( colNames, "Link" ), 1 ) );
// Run the chart
Variability Chart( Y( Eval( colNames ) ), X( :Link ), Std Dev Chart( 0 ) );
다음은 스크립트의 결과입니다.
