Я использую aes_string()
в функции для создания некоторых графиков. Я использую cowplot для theming, и это масштабирует оси до максимальных значений предоставленных данных, отсекая верхнюю или боковую точки точек в максимуме, как в примере ниже.Использовать переменные, переданные в aes_string() в других функциях ggplot.
Поэтому я хочу добавить 5% к максимальным данным для столбца, чтобы добавить небольшое пространство. Если бы я не писал функцию я мог бы сделать что-то вроде
scale_y_continuous(expand = c(0,0),
limits = c(0, max(y_var) * 1.05))
Однако, я не знаю, как сделать это с aes_string()
. Может ли кто-нибудь объяснить, как это сделать с помощью aes_string()
?
library(cowplot)
library(ggplot2)
fig_fun <- function(data, var){
ggplot(data, aes_string(x = "wt", y = var)) +
geom_line() +
geom_point() +
scale_y_continuous(expand = c(0,0),
limits = c(0, NA))
}
data("mtcars")
p <- fig_fun(data = mtcars, var = "mpg")
p
Не отправляйте 'expand = c (0, 0)', если вы хотите, чтобы ось расширялась. – Roland
Можете ли вы не просто использовать 'max (data [, var])', чтобы получить максимум всех значений для переменной 'y'? Затем вы меняете это, как хотите. – niczky12
@Roland, к сожалению, мне было наложено требование, чтобы ось x пересекала y в нуле, поэтому 'expand = c (0, 0)' –