JMP 14에는 몇 가지 새로운 기능이 있으며 그 중 많은 기능이 JSL의 기능을 확장하거나 향상시킵니다. 이 블로그에서는 JSL 및 스크립팅 인덱스의 새로운 기능 중 일부만 다룰 것입니다.
HTTP 요청
데이터에 액세스하기위한 REST API를 지원하는 데이터 소스가 있습니까? Twitter 또는 Google API와 같은 공개 REST API 서비스와 상호 작용하고 싶습니까? 이제 JMP 14에서는 New HTTP Request () 함수를 사용하여 기본적으로 해당 API에 액세스 할 수 있습니다.
다음은 공용 API 서비스를 사용하여 POST 요청을 테스트하는 Scripting Index에서 가져온 간단한 예입니다.
Names Default To Here( 1 );
request = New HTTP Request(
url( "http://httpbin.org/post" ),
Method( "POST" ),
JSON( "\[{"username":"bob","address":"12345"}]\" )
);
data = request << Send();
JSON 파일에 데이터 변수의 문자열 결과를 저장 한 후에는 새 JSON 구문 강조 표시된 스크립트 편집기에서 결과를 볼 수 있습니다. 이 JSON 응답을 처리하는 방법을 결정한 후에는 JSON 구문 분석, JSON을 List로 또는 JSON을 데이터 테이블로 변환하는 등 JSON 처리 함수를 원하는만큼 사용할 수 있습니다.
파이썬 통합
JMP 응용 프로그램 중 하나에서 파이썬의 힘을 활용하고 싶습니까? JMP 14의 Python 통합으로 이제 그 어느 때보 다 쉬워졌습니다.
아래는 matplotlib Python 패키지를 사용하여 나이와 색으로 나뉘어 진 가중치의 산점도를 만드는 예제입니다.
NamesDefaultToHere( 1 );
// Establish connection to Python
PythonConnection = PythonConnect();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Send the data table to Python as a dataframe
PythonConnection << Send( dt );
Close( dt, NoSave ); // close the JMP data table
// Submit python program that uses our data table (dataframe in python)
ml = PythonConnection << Submit(
"\[
import matplotlib.pyplot as plt
plt.scatter(dt.weight, dt.height, c=dt.age)
plt.ylabel('Height')
plt.xlabel('Weight')
plt.title('Weight vs. Height for Big Class')
plt.show(block=False)
]\"
);
// Get the graphics added by 'plt.show(...)'
plot = PythonConnection << Get Graphics( png );
// Show the graphic in a new window
pngJMP = NewWindow( "Plot", PictureBox( plot ) );
// close the plot
PythonConnection << Submit( "plt.close()" );
// disconnect from python
PythonConnection << Disconnect;

수업
객체 지향 배경을 가진 JSL 프로그래머이거나 고급 응용 프로그램에서 새로운 것을 시도하려는 경우 클래스 정의를위한 새로운 기능에 관심이있을 수 있습니다. 클래스는 네임 스페이스와 비슷하지만 객체라고하는 여러 인스턴스를 가질 수 있습니다. 이렇게하면 각각의 고유 한 동작을 갖는 표시 상자 그룹과 같은 무언가의 여러 인스턴스를 만들 수 있습니다.
클래스에서의 이러한 동작은 메소드라는 것을 사용하여 수행됩니다. 메소드는 클래스 내에서만 메소드가 존재할 수 있다는 점을 제외하고는 현재 함수로 알려진 메소드와 매우 유사합니다.
다음은 서로의 발가락을 밟지 않고 여러 번 창에 추가 할 수있는 간단한 계산기의 예입니다.
// Define the class so we can create instances of it later
Define Class(
"Calculator",
// Define member variables
content = Empty();
num1_neb = Empty();
num2_neb = Empty();
operand_cmb = Empty();
calc_btn = Empty();
result_neb = Empty();
// _init_ is special method called when a new object is created
_init_ = Method( {},
content = H List Box(
num1_neb = Number Edit Box( 0 ),
operand_cmb = Combo Box( {"+", "- "} ),
num2_neb = Number Edit Box( 0 ),
calc_btn = Button Box( "=",
calc( operand_cmb << Get Selected(), num1_neb << Get(), num2_neb << Get() );
),
result_neb = Number Edit Box()
);
initializeValues();
);
// called from the _init_ method
initializeValues = Method( {},
num1_neb << Set( Random Integer( 10 ) );
num2_neb << Set( Random Integer( 10 ) );
);
// called when '=' button is clicked
calc = Method( {operand, n1, n2},
result = If( operand == "+",
addition( n1, n2 ),
subtraction( n1, n2 )
);
result_neb << set( result );
);
// methods called by calc
addition = Method( {n1, n2},
Return( n1 + n2 )
);
subtraction = Method( {n1, n2},
Return( n1 - n2 )
);
);
// Create multiple instances of the Calculator class
c1 = New Object( Calculator );
c2 = New Object( Calculator );
c3 = New Object( Calculator );
// Create a new window with the content of the three instances of Calculator
New Window( "Example", c1:content, c2:content, c3:content );

JMP 프로젝트를 IDE로 사용하기
JMP 14 프로젝트를 사용하면 통합 된 로그 및 책갈피를 사용하여 스크립트의 탭보기를 쉽게 만들 수 있습니다. 이렇게하면 한 곳에서 추가 기능이나 프로젝트를위한 모든 스크립트를 통해 훌륭한 워크 플로 관리를 할 수 있습니다. 새로운 JMP 프로젝트 기능을 활용하는 예를 보려면 블로그를 확인하십시오. JMP 14로 조직하기 .

JMP 14 용 JSL에서 이러한 모든 새로운 기능을 즐기시기 바랍니다. JSL의 향상된 기능에 대한 자세한 내용은 도움말> 새로운 기능을 통해 사용할 수있는 새로운 기능 문서의 스크립팅 섹션을 참조하십시오.