그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트워크플로의 한 단계 속도를 높이기 위해 그래프 빌더에서 모든 Y축의 축 제한을 표시된 데이터에서 계산할 수 있는 특정 값(분위수)으로 자동 설정하는 스크립트를 작성하려고 합니다.
계획은 다음과 같습니다.
- 축 레이블 가져오기
- 데이터 테이블의 해당 열을 사용하여 원하는 제한을 계산합니다.
- 그에 따라 한계를 설정하십시오.
이는 로컬 데이터 필터를 사용할 수 있고 레이블을 수정할 수 있기 때문에 처음에 예상했던 것보다 더 복잡한 것으로 밝혀졌습니다.
따라서 그래프 빌더에서 직접 각 축에 대해 서로 다른 Y 값을 얻고 싶습니다. 특정 축에서 값을 얻는 방법은 무엇입니까?
예: 내가 가지고 있는 경우
R = Current Report();
AB = R[axisbox(2)] ;
ab_min = -100; // How to access the value list containing all the values that are used by default to compute axis limits of AB here?
ab_max = 100;
AB << Min(ab_min);
AB << Max(ab_max);
"십자가"를 사용하여 일부 FrameBox가 생겼지만 그로부터 값을 가져오는 방법을 알 수 없었습니다.
어떤 아이디어나 더 좋은 방법이 있습니까?
고마워 롭브
제도법스크립팅Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트이런 식으로 작동할까요? XPath를 사용하여 모든 axisbox를 가져온 다음 어느 것이 Y축인지 파악합니다. 그 후에는 조작할 수 있어야 합니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
axisboxes = Report(gb) << XPath("//AxisBox");
/*y-axis seems to be even numbers*/
yaxis = axisboxes[2::N Items(axisboxes)::2];
ymin = yaxis << get min;
ymax = yaxis << get max;
show(ymin, ymax);
Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트다음 JSL은 현재 보고서에 대한 모든 AxisBox() 목록을 반환합니다.AxisBox(1) 및 AxisBox(2) 모두.따라서 할 수 있는 일은 항목 2, 4, 6 등을 처리하여 모든 AxisBox(2)에 액세스하는 것입니다.
r=current report();
yMaxs = ((r[1]<<TOP parent=""></TOP>
Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트안녕 @jthi , 안녕 @txnelson
감사합니다. 하지만 조금 오해가 있는 것 같습니다.
모든 y축에서 현재 최소값과 최대값을 얻고 싶지 않습니다. 보다 적절한 한계를 계산하기 위해 표시된 데이터의 모든 해당 y 값을 얻고 싶습니다.
예를 들어, y 축에 대해 1000 값이 표시되는 경우 해당 1000 y 값의 목록 또는 벡터를 얻고 싶습니다.
Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트데이터 테이블에서 값을 가져오는 것이 작동하지 않는 이유는 무엇입니까?행이 분석에서 제외되었거나 로컬 데이터 필터가 적용된 경우 해당 조건을 적용하기만 하면 됩니다.
names default to here(1);
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
allHeights = dt:height << get values;
// or if you want just the unique values of the column height, this
// is my prefered way to get them
uniqueHeights = associative array(dt:height<<GET values=""> </GET>
Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트현재 그래프 작성기에서 축에 표시된 열 또는 열 이름을 가져오는 신뢰할 수 있는 방법이 없습니다. 내가 생각할 수 있는 유일한 방법은 축 레이블을 가져오는 것이지만 텍스트가 더 이상 열 이름이 아니도록 사용자가 수정했을 수 있습니다. 또한 그래프 빌더에서 열을 직접 변환/수정할 수 있습니다. 이러한 열이 축에 표시되면 데이터 테이블에서 해당 열을 전혀 찾을 수 없습니다. 예, 데이터 테이블에서 올바른 열을 찾은 경우 로컬 데이터 필터에서 필터 설정을 적용해야 합니다.
플롯된 데이터 값을 축/그래프 빌더에서 어떻게든 직접 가져올 수 있다면 어떤 종류의 열이 플롯되는지, 어떤 필터가 적용되는지, 사용자가 변경한 레이블이 무엇인지, 무엇이 잘못되어 내 스크립트를 깨뜨릴 수 있는지는 중요하지 않을 것입니다. .
Re: 그래프 빌더의 모든 축 제한을 표시된 데이터에서 계산된 값으로 설정하는 스크립트이와 같은 것은 당신에게 마커 값을 얻을 것입니다
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Size(570, 1049),
Show Control Panel(0),
Variables(
X(:age),
Y(:height),
Page(:sex)
)
);
frame = Report(gb)[FrameBox(1)];
frames = Report(gb) << XPath("//FrameBox");
marker_segs = (frames << Find Seg(Marker Seg(1)));
xm = marker_segs << Get X Values;
ym = marker_segs << Get Y Values;
show(xm, ym);
jmp가 다각형의 중심점을 자동으로 찾으면 그래프 빌더에서 x&y 값(좌표) 내보내기
색상 및 마커 유형과 같은 범례 상자 정보를 얻는 방법