散布図をプロットしてplot(x, y)
いて、それを対数値にしたいので、次のようにしますplot(log(x), log(y))
。x
一部の値が 0 であり、したがってプロットにない場合に対処したいと思いますが、対応するy
値はゼロではありません。
散布図をログ ティックで自然数の値で表示したいと思います。つまりlog2
、ティックがあれば、2^0, 2^1, 2^2, ...
これらのポイントを見逃さないように、スケール上に 0 の値をプロットすることもできます。
次に例を示します。
> x = c(0, 1, 20, 100, 200, 500)
> y = c(1, 16, 32, 105, 300, 50)
> plot(x, y)
6つのポイントがあります。私が使用する場合:
> plot(log2(x), log2(y))
x[0]、y[0] が省略されているため (x 値は 0)、プロットされるのは 5 つだけです。したがって、対数値をプロットしたいのですが、目盛りラベルは単純に対数スケールでマークされた自然数になります。次に、同じ軸上に 0、2^0 (もちろん 1)、2^1、2^2 などを簡単に配置できます。次に、対数スケールを維持しながら、点 (x[0], y[0]) が引き続きプロットされます。
補足:例を挙げて非常に合理的なことを尋ねる投稿に反対票を投じるのは公平ではないと思います。これは明らかにトピックと関連性があり、対数値で物事をプロットし、境界/エッジケースを気にするほぼすべての人に出てきます.
(すべてのポイントに任意の小さな定数を追加することでこれに対処する人がいることは知っていますが、面倒なので避けたいと思います。)ありがとう