데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?배포 플랫폼을 사용할 때 기본적으로 빈 너비는 항상 커서 배포를 잘 이해하는 데 도움이 되지 않습니다. 처리해야 하는 데이터는 메가, 밀리, 단위 등의 순서로 다양하므로 모든 히스토그램에 대해 고정된 빈이 작동하지 않습니다. 또한 처리해야 하는 실제 경우에는 수백 개의 테스트가 있으므로 플롯을 하나씩 조정하는 것도 가능하지 않습니다. 각 개별 플롯의 빈 너비를 데이터 범위로 결정하는 방법이 있습니까? 예를 들어 단순히 범위를 잡고 100 등분 또는 50 등으로 나누고 싶습니다. 따라서 단위에 관계없이 개별적으로 조정할 필요 없이 모든 플롯에서 모양이 다소 균일할 것입니다. 기본적으로 빈 너비가 데이터 범위의 1/100로 설정되는 것을 볼 수 있기를 바라는 플롯의 3가지 예가 첨부되어 있습니다.
감사 해요!
제도법Re: 데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?안녕하세요 @breino ,
여기에서 시작:
https://community.jmp.com/t5/JMP-Add-Ins/2D-Histograms/ta-p/377945
도움이 되는지 알려주세요.
Re: 데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?안녕하세요 론:
제안해 주셔서 감사합니다. 불행히도 그것은 많은 수의 테스트를 좋아하지 않습니다. 나는 ~ 30개의 테스트를 추가하려고 시도했고 "항목을 추가할 수 없습니다: 목록에 이미 최대 항목 수가 포함되어 있습니다."라는 오류가 발생합니다.
대부분의 배포판에는 넓은 막대가 있으므로 빈 너비를 조정하는 일반적인 설정이 있기를 바랐습니다. 따라서 너비를 결정하는 방법에 대한 전역 설정이어야 합니다.
Re: 데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?스크립팅을 시도할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(2);
rep_layer = Report(dist);
axisbox = rep_layer[axis box(1)];
For Each({val}, colList,
//some calculation for inc
newInc = Col Max(Column(dt, val)) - Col Min(Column(dt, val));
newInc = newInc/10;
cur_rep = rep_layer[OutlineBox(val)];
axisbox = cur_rep[axis box(1)];
axisbox << Inc(newInc);
);Bin Span()도 있지만 배포가 빌드된 후 수정할 수 있는지 확실하지 않습니다.
Re: 데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?안녕 @breino
이것을 개발의 기초로 삼는 것은 어떻습니까?
Open( "$SAMPLE_DATA/Big Class.jmp" );
Distribution(
Continuous Distribution( Column( :height ), Set Bin Width( (colmax(:height)-colmin(:height))/50 ) ),
Continuous Distribution( Column( :weight ), Set Bin Width( (colmax(:weight)-colmin(:weight))/100 ) )
);
Re: 데이터 범위 자체를 기반으로 분포에서 빈 너비를 자동으로 조정하려면 어떻게 해야 합니까?Set Bin Width()를 사용하여 이전 코드를 개선했을 가능성이 큽니다. @ron_horne .
루핑은 더 영리한 방법으로 만들 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Students.jmp");
colList = {"height", "weight"};
dist = dt << Distribution(
Continuous Distribution(Column(:height)),
Continuous Distribution(Column(:weight))
);
wait(1);
For(i = 1, i <= N Items(colList), i++,
newInc = Col Max(Column(dt, colList[i])) - Col Min(Column(dt, colList[i]));
newInc = newInc/10;
dist[i] << Set Bin Width(newInc);
);