JMP 그래프 빌더의 matplotlib안녕하세요 matplotlib와 JMP 그래프 빌더를 결합하려고 하는데 가능한지 모르겠습니다. matplotlib에서만 그릴 수 있는 특정 그래프를 플로팅하고 싶습니다. 하지만 데이터 필터링과 같은 JMP 그래프 빌더 인터페이스의 이점을 활용하고 싶습니다. JMP 그래프 빌더 인터페이스를 통해 matplotlib 플롯을 표시할 수 있습니까? 미리 감사드립니다
제도법스크립팅Re: JMP 그래프 빌더의 matplotlib스크립트는 matplotlib 코드를 트리거하고 필터링된 데이터를 기반으로 그래프를 재생성하는 데이터 필터를 사용하여 처리할 수 있습니다.그러나 Graph Builder를 matplotlib와 통합하는 방법을 모르겠습니다.
Re: JMP 그래프 빌더의 matplotlib원하는 결과를 오해할 수도 있지만 그래프 빌더(GB)의 드래그 앤 드롭 상호 작용과 GB 내의 복잡한 그래프 레이아웃이 아닌 데이터 필터와 플롯만 있으면 되는 것처럼 들립니다.
그렇다면 최소한 다음 성분이 필요하다고 생각합니다.
- JSL 기능 "Make Filter Change Handler"를 사용하면 데이터 필터의 상태에 따라 데이터의 하위 집합을 가져올 수 있습니다. 스크립팅 인덱스의 "필터 변경 핸들러 만들기"에 대한 예를 참조하십시오.
- JSL 함수 "Python Get Graphics"를 사용하면 Python에서 플롯을 다시 가져올 수 있습니다. 스크립팅 인덱스의 "Python Get Graphics"에 대한 예를 참조하십시오.
- 필터와 플롯, 그리고 다른 분석을 함께 보관하는 "데이터 필터 컨텍스트 상자" 표시 상자.
다음은 요소를 결합하는 작은 예입니다.
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
filter = (dt << Data Filter( Local, Add Filter( columns( :Region ) ) )),
pb = Picture Box()
)
)
);
f = Function( {nrows},
rows = filter << get filtered rows;
xx = dt:X[rows];
yy = dt:Y[rows];
Python Init();
Python Send(xx);
Python Send(yy);
ml = Python Submit(
"\[
import matplotlib.pyplot as plt
plt.scatter(xx,yy)
plt.xlabel('X')
plt.ylabel('Y')
plt.show(block=False)
]\"
);
plot = Python Get Graphics( png );
pb << set image(plot);
Python Submit( "plt.close()" );
Python Term();
);
rs = filter << Make Filter Change Handler( f );
Python의 들여쓰기 규칙에 주의하십시오. 예를 들어, Python Submit의 모든 문자열은 줄의 시작 부분에 맨 앞에 붙여야 합니다.
다음은 제품의 몇 가지 스크린샷입니다.


Re: JMP 그래프 빌더의 matplotlib놀라운 훌륭한 예!
이 예제를 사용하는 경우 첫 번째 클릭 후 Python이 로드될 때까지 기다릴 준비를 하십시오. 내 느린 컴퓨터는 10-30초가 걸릴 수 있습니다. 로드되면 후속 클릭에서 충분히 빠릅니다.
Re: JMP 그래프 빌더의 matplotlib이 예제는 JMP Cookbook에 추가해야 합니다.