unitsパッケージは、ユニットを扱うのに非常に便利です。ただし、対数変換された軸に単位を使用して変数をプロットする方法は私にはわかりません。ベースプロットでは、log="y"
パラメータを追加するとエラーが発生します。標準scale_y_log10()
関数を使用したggplot2についても同じことが言えます。または、ggforce関数を使用しても機能しscale_y_unit(trans="log10")
ますが、不可解な軸ラベルが生成されます。-これをベースプロットで機能させる方法はありますか?-scale_y_unit(trans="log10")
軸のラベルをいじらないようにして、代わりに軸の数字とデータに焦点を合わせる方法はありますか?
library(units)
# Take cars data frame: stopping dist (ft) vs speed (mph)
plot(cars)
# Using base plot
Distance = set_units(cars$dist, ft)
Speed = set_units(cars$speed, mph)
plot(x=Speed, y=Distance, log="y")
# Error in Ops.units(y, 0) :
# both operands of the expression should be "units" objects
# Using ggplot
library(ggplot2)
library(ggforce)
df = cars
df$Disance = set_units(df$dist, ft)
df$Speed = set_units(df$speed, mph)
qplot(x=Speed, y=Distance, data=df) +
scale_y_unit(trans="log10")
# Y-axis is cryptically labelled with "Distance (lg(re 0.3048 m))"
スケール内で対数変換を適用する代わりに、を介して適用できますcoord_trans
。(BTW:プロットに目盛りラベルを追加します)これを試してください:
library(units)
library(ggplot2)
library(ggforce)
df = cars
df$Distance = set_units(df$dist, ft)
df$Speed = set_units(df$speed, mph)
qplot(x=Speed, y=Distance, data=df) +
scale_y_unit() +
coord_trans(y = "log10")
reprexパッケージ(v0.3.0)によって2020-04-14に作成されました
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加