2

2Dポイントの数を指定するかどうか疑問に思っていました.対数yスケールで画面上のポイントを描画する場所をどのように計算しますか?

ポイントのすべてのy値の対数を取り、それらを「通常」にプロットしようとしました(プロットポイント[x、log(y)] =>高さ:高さ*ログ(y)/ログ(最大)) . しかし、このアプローチは 1 未満の y 値に対して問題を引き起こします。したがって、これは、私の方法が一般的に正しいアプローチであるかどうか疑問に思います。私が使用できる微調整は、log(y) の代わりに log(y/min) を使用することです。

改善またはより良いアプローチに関するアドバイスは大歓迎です!

4

4 に答える 4

2

値が正であると仮定することyで、次のような小さなバイアスを使用して独自のアプローチを使用して、height*log(y-min+1)/log(max-min+1)非常に大きな負の値を回避します。

于 2012-05-13T13:40:35.450 に答える
2

対数的にプロットする場合y/yminは、最小値を にスケーリングし、1すべての対数値が負でないことを保証します。

于 2012-05-13T13:47:33.110 に答える
0

いくつかの手がかりを提供する可能性のあるプロットのR実装を確認してください。を使用する場合plot(x,y,log='y')、y軸は対数スケールでプロットされます。

ポイント<1については、-veの数値でも同じ問題が発生しますよね?したがって、基本的には、すべてのポイントが画面上の可視範囲内にあるようにデータを正規化する必要があります。次の変換を使用します。

ny = number_of_pixels *(log(y)-min(log(Y)))/(max(log(Y))-min(log(Y)))

于 2012-05-13T16:10:59.380 に答える
0

私が理解していることから、あなたはlog(y)をプロットしようとしているようですが、y軸をyの場合と同じに保ちますか? それは本当に意味がありません。

プロット方法は問題ありません。(x, log(y)) に点をプロットします。

変更する必要があるのは、y 軸の制限です。最初に ymin から ymax になった場合は、log(ymin) から log(ymax) に変更する必要があります。

そのようにy軸の制限を変更すると、ポイントがうまく収まります。

于 2012-05-13T19:15:36.647 に答える