вторичная ось ggplot2 R - PullRequest
0 голосов
/ 25 марта 2019

У меня возникают некоторые проблемы при определении вторичной оси в 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(...)

. При построении данных таким образом я не могу обратиться к существующей таблице, потому что таблица не выходит, но она находится в процессеСоздан исключительно для заговора.

Может кто-нибудь помочь?Спасибо

...