Вы можете использовать ggforce
, который решает эту проблему.
Более конкретно, см. scale_unit
.
# install.packages("ggforce")
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)
Вы получаете такой же результат, как этот, чтобы избежать преобразования данных.
qplot(x=speed, y=dist, data=cars) +
scale_x_unit(unit = 'mph') +
scale_y_unit(unit = 'ft')
Примечания
- Этот ответ дает мне идея написать запись на эту топи c для игры с юнитами и графиками.
- В настоящее время существует проблема с последней версией ggplot, которая выпадает значения осей. В ожидании выхода новой версии можно переключиться на версию для разработчиков:
devtools::install_github("thomasp85/ggforce")
.