データ範囲自体に基づいて分布のビン幅を自動的に調整するにはどうすればよいですか?配布プラットフォームを使用する場合、デフォルトではビンの幅が常に大きく、配布を十分に理解するのに役立ちません。 私が処理しなければならないデータは、maginutes(メガ、ミリ、ユニットなど)の順序が異なるため、すべてのヒストグラムの固定ビンは機能しません。 また、処理する必要がある実際のケースでは、何百ものテストがあるため、プロットを1つずつ調整することもできません。 個々のプロットのビン幅をデータ範囲によって決定する方法はありますか? たとえば、範囲を取得して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);
);