Как построить частоты дискретных категорий? - PullRequest
2 голосов
/ 11 октября 2011

Привет У меня есть фрейм данных, который выглядит следующим образом:

    Seq     H   E   T   C
1   Seq_1   2   1   5   4
2   Seq_2   2   1   5   4
3   Seq_3   2   1   5   4
4   Seq_4   0   0   6   6
5   Seq_5   0   4   2   6    

Где H, E, T и C представляют количество этих функций в каждой последовательности.

Япытаясь построить линейный график, где каждая линия должна представлять одну последовательность.По оси X будут элементы (H, E, T, C), а по оси Y - соответствующий счетчик, поэтому линии будут отображать изменение количества в каждой последовательности.

Как мне это сделать?Я уже много чего возился, но не смог!

1 Ответ

1 голос
/ 11 октября 2011

Хитрость для ggplot заключается в том, что он ожидает, что данные будут в «длинном» формате.Часто проще всего получить его в этом формате с melt.После расплавления это становится упражнением в определении графика так, как вы хотите его увидеть.Вот пример:

txt <- "    Seq     H   E   T   C
1   Seq_1   2   1   5   4
2   Seq_2   2   1   5   4
3   Seq_3   2   1   5   4
4   Seq_4   0   0   6   6
5   Seq_5   0   4   2   6 "

dat <- read.table(textConnection(txt), header = TRUE)
library(ggplot2)

dat.m <- melt(dat)


ggplot(dat.m, aes(variable, value, group = Seq, colour = Seq)) + 
  geom_line()

Это приводит к некоторым проблемам с переполнением для Seq_1 - Seq_3, поэтому вы можете вместо этого рассмотреть возможность отбрасывания цвета и огранки:

ggplot(dat.m, aes(variable, value, group = Seq)) + 
  geom_line() + 
  facet_wrap(~Seq)

Очевидно, что огранка становится менее полезной, когдау вас есть сотни последовательностей для просмотра.

enter image description here

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