次の問題があります。箱ひげ図で離散変数と連続変数を視覚化したいのですが、後者には極端に高い値がいくつかあります。これにより、箱ひげ図が無意味になります (グラフのポイントと「本体」でさえ小さすぎる)。そのため、これを log10 スケールで示したいと思います。視覚化から極端な値を除外できることは承知していますが、そうするつもりはありません。
ダイヤモンド データの簡単な例を見てみましょう。
m <- ggplot(diamonds, aes(y = price, x = color))
ここでは問題は深刻ではありませんが、log10 スケールで値を表示する理由を想像していただければ幸いです。試してみよう:
m + geom_boxplot() + coord_trans(y = "log10")
ご覧のとおり、y 軸は log10 でスケーリングされていて問題ないように見えますが、x 軸に問題があり、プロットが非常に奇妙になっています。
では問題は発生しませんがscale_log
、この方法ではカスタム フォーマッタを使用できないため、これはオプションではありません。例えば:
m + geom_boxplot() + scale_y_log10()
私の質問: y 軸に log10 スケールのボックスプロットをプロットするソリューションを知っている人はいますか?このスレッドformatter
のような関数でラベルを自由にフォーマットできますか?
回答とコメントに基づいて回答者を支援するために質問を編集します。
私が本当に求めているもの: 1 つの log10 変換された軸 (y) で、科学的なラベルはありません。(formatter=dollar)
ドルまたはカスタム形式のようにラベルを付けたいと思います。
@hadley の提案を試すと、次の警告が表示されます。
> m + geom_boxplot() + scale_y_log10(formatter=dollar)
Warning messages:
1: In max(x) : no non-missing arguments to max; returning -Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
y 軸のラベルを変更しない場合: