Линейные графики по группам - PullRequest
1 голос
/ 21 апреля 2011

У меня есть следующие данные, и я хочу создать условную линейную диаграмму для переменных group1 и group2.

dat <- structure(list(group1 = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L),
                                         .Label = c("a", "b"),
                                         class = "factor"),
                      group2 = c(1L, 2L, 3L, 4L, 1L, 2L, 3L),
                      val1 = c(10L, 3L, 2L, 7L, 10L, 3L, 2L),
                      val2 = c(8L, 4L, 8L, 5L, 8L, 4L, 8L),
                      val3 = c(7L, 5L, 6L, 9L, 7L, 5L, 6L)),
                 .Names = c("group1", "group2", "val1", "val2", "val3"),
                 class = "data.frame", row.names = c(NA, -7L))

В идеале, я хочу иметь два графика на основе group1 (два для уровней a и b), и внутри каждой переменной group 1 мне нужны линейные диаграммы, основанные на переменных строки (в основном, соединяющих три точки для val1, val2 и val3) с разными цветами для разных group2 переменных.

1 Ответ

2 голосов
/ 21 апреля 2011

Вы имеете в виду что-то вроде этого:

dat2 <- with(dat, data.frame(group1 = rep(group1, each = 3), 
                             group2 = factor(rep(group2, each = 3)), 
                             values = stack(dat[,3:5])[,1]))

Приведенный выше код реструктурирует данные в формат, более удобный для использования с ggplot.dat был определен с использованием кода dput(), который я добавил к вашему Q. Сюжет, который, я думаю, вам нужен, может быть создан с помощью

p <- ggplot(dat2, aes(x = 1:3, y = values, colour = group2)) + geom_line() + 
        geom_point() + facet_wrap(~ group1, ncol = 2)
p

, который дает

ggplot line plot example

В основном мне приходилось составлять некоторые x данные, иначе как вы узнаете, где в координатных пространствах x и y должны быть расположены точки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...