JMP 그래프 빌더의 matplotlib안녕하세요 matplotlib와 JMP 그래프 빌더를 결합하려고 하는데 가능한지 모르겠습니다. matplotlib에서만 플롯할 수 있는 특정 그래프를 플롯하고 싶습니다. 하지만 데이터 필터링과 같은 JMP 그래프 빌더 인터페이스의 이점을 활용하고 싶습니다. JMP 그래프 빌더 인터페이스를 통해 matplotlib 플롯을 표시할 수 있습니까? 미리 감사드립니다
제도법스크립팅Re: JMP 그래프 빌더의 matplotlib이 예는 JMP 요리책에 추가해야 합니다.
Re: JMP 그래프 빌더의 matplotlib놀라운 훌륭한 예입니다!
이 예제를 사용하는 경우 첫 번째 클릭 후 Python이 로드될 때까지 기다릴 준비를 하십시오. 내 느린 기계는 10-30초가 걸릴 수 있습니다. 일단 로드되면 후속 클릭에서 충분히 빠릅니다.
Re: JMP 그래프 빌더의 matplotlib원하는 결과를 오해할 수도 있지만 그래프 빌더(GB)의 끌어서 놓기 상호 작용과 GB 내의 복잡한 그래프 레이아웃이 아니라 데이터 필터와 플롯만 필요한 것처럼 들립니다.
그렇다면 최소한 다음과 같은 재료가 필요하다고 생각합니다.
- JSL 기능 "Make Filter Change Handler"를 사용하면 데이터 필터의 상태에 따라 데이터의 하위 집합을 가져올 수 있습니다. 스크립팅 인덱스에서 "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스크립트는 matplotlib 코드를 트리거하고 필터링된 데이터를 기반으로 그래프를 다시 생성하는 데이터 필터를 사용하여 처리할 수 있습니다.그러나 어쨌든 Graph Builder를 matplotlib와 통합하는 방법을 모르겠습니다.