19 мар. 2013 г., 15:30 от knk

ggplot aes_string с взаимодействием

Использование aes_string позволяет легко создавать функции для вывода параметров на график:

p <- ggplot(mtcars, aes_string(x="mpg", y="wt", group=interaction("cyl","gear"))) + 
     geom_point()

Теперь, чтобы написать функцию

make_plot <- function(x,y, interact) {
    p <- ggplot(mtcars, aes_string(x=x, y=y, group=interact)) + 
         geom_point()
}

и вызвать функцию

make_plot("mpg","wt",c("cyl","gear"))

Но здесь взаимодействие не используется, то есть не интерпретируется. Я не хочу использовать отдельные переменные для взаимодействия bcos, та же самая функция могла бы использоваться для других графиков. Как мне сделать так, чтобы переменная взаимодействия была принята и понятна ggplot?

Ответы на вопрос (0)

19 авг. 2014 г., 16:51 от 118

Согласно сэто ответ это должно работать (без кавычек):

p <- ggplot(mtcars, aes_string(x=x, y=y, group=paste0("interaction(", paste0(interact, 
    collapse =  ", "), ")"))) + geom_point()

ВАШ ОТВЕТ НА ВОПРОС