안녕하세요 JMP 사용자 여러분,
JSL을 사용하여 구성 파일에서 열 이름을 업데이트하고 제목과 축에 업데이트 된 열 이름이있는 플롯을 만들고 싶습니다. 어떻게 할 수 있는지에 대한 아이디어를 찾고 있습니다.
지금까지 코드와 테이블을 첨부하고 있습니다. 도와 주셔서 감사합니다.
최종 그래프의 모양을 첨부했습니다 (desired_Bivariate).
-시몬
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
dt1 << New Column( "New Column", character, formula( Column_name || "_" || additional_name ) );
graph = dt << Bivariate( Y( :height ), X( :id ) );
이 시도:
Names Default To Here( 1 );
dt = Open( "table_1.jmp" );
dt1 = Open( "config_table.jmp" );
for(i = 1, i <= N Rows(dt1), i++,
x = Column(dt1, "Column_name")[i];
y = Column(dt1, "additional_name")[i];
Column(dt, i) << Set Name( x || "_" || y);
);
다음은 열의 실제 이름을 변경하지 않지만 원하는 것을 수행하는 문제에 대한 두 가지 접근 방식입니다.첫 번째는 이변 량 실행을 위해 지정된 새 이름을 가진 변환 열을 생성합니다.이러한 열은 이변 량 실행에만 존재합니다.

두 번째 예에서는 데이터 테이블의 여러 열에 대해 단위 열 속성을 사용합니다.JMP의 플랫폼은 Units 열 속성을 따르고 열 이름 뒤에있는 ()에 단위 값을 배치하여 실제 열 이름에 추가하여 표시합니다 .... (예 : Height (feet))

// This version of the script used Transform variables
// to temporarially change the name of the column just
// for the running of the Bivariate
Names Default To Here( 1 );
dt = Data Table( "table_1" );
dt1 = Data Table( "config_table" );
// Loop across the columns to run the Bivariate
For( i = 2, i <= N Cols( dt ), i++,
// Check to see if a column name change is specified
// in the config table
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1
:additional_name != ""
);
// If a column name change is found make the change
If( N Rows( foundRow ) > 0,
Eval(
Substitute(
Expr(
Bivariate(
Y(
Transform Column(
__trans__,
Formula( __col__ )
)
),
X( :id )
)
),
Expr( __trans__ ),
dt1:Column_name[foundRow[1]] || "_" || dt1
:additional_name[foundRow[1]],
Expr( __col__ ),
Parse( ":" || dt1:Column_name[foundRow[1]] )
)
),
// otherwise just run the bivariate
dt << Bivariate( Y( Column( i ) ), X( :id ) )
);
);
// This version of the script takes advantage of the Units
// column property. It will automatically add (unit value) to
// the display output, without actually changing the columns
// name
Names Default To Here( 1 );
dt = Data Table( "table_1" );
dt1 = Data Table( "config_table" );
// Add the Units Column Property to the columns in the
// original data table
For( i = 1, i <= N Cols( dt ), i++,
foundRow = dt1 << get rows where(
:Column_name == Column( dt, i ) << get name & dt1
:additional_name != ""
);
If( N Rows( foundRow ) > 0,
column( dt, i ) << set property("units", eval(dt1:additional_name[foundRow[1]]));
);
);
// Now run the normal bivariates
For( i = 2, i <= N Cols( dt ), i++,
dt << Bivariate( Y( Column( i ) ), X( :id ) )
);