Пакет юнитов очень полезен для работы с юнитами. Тем не менее, мне не ясно, как строить переменные с единицами на лог-преобразованных осях. На базовом графике добавление параметра log="y"
приводит к ошибке. То же самое касается ggplot2, использующего стандартную функцию scale_y_log10()
. Кроме того, использование функции ggforce scale_y_unit(trans="log10")
работает, но создает криптографическую метку оси c. - Есть ли способ сделать эту работу на базовом участке? - Есть ли способ, чтобы 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))"