У меня возникают некоторые проблемы при определении вторичной оси в ggplot2.В частности, я не могу определить преобразование, которое я хотел бы применить к оси, без цитирования данных.
Здесь код:
mtcars %>%
ggplot()+
geom_line(aes(x=mpg, y=wt), col="red")+
geom_line(aes(x=mpg, y=disp*( max(wt) / max(disp) ) ), col="blue" )+
scale_y_continuous(sec.axis = sec_axis(~./(max(wt) / max(disp)), name="disp"))
И я получаю ошибку:
Error in rlang::eval_tidy(rlang::f_rhs(self$trans), data = range, env = rlang::f_env(self$trans)) :
object 'wt' not found
При определении sec.axis = sec_axis(~./(max(wt) / max(disp))
переменные wt
и disp
содержатся в наборе данных mtcars
.Почему он возвращает ошибку?
Я могу обойти ее, выполнив
... sec_axis(~./(max(mtcars$wt) / max(mtcars$disp)) ...
Однако я бы хотел применить это преобразование без кавычек набора данных каждый раз.Это потому, что перед построением данных я хотел бы применить некоторые преобразования, такие как
my_df %>% groupby(...) %>% summarize(...) %>% mutate(...) %>% ggplot(...)
. При построении данных таким образом я не могу обратиться к существующей таблице, потому что таблица не выходит, но она находится в процессеСоздан исключительно для заговора.
Может кто-нибудь помочь?Спасибо