2011-10-10 28 views
2

您好我有一個數據幀,看起來像這樣:如何繪製離散類別的頻率?

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

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一些overplotting問題 - Seq_3所以你可能要考慮刪除的顏色和小面來代替:當你有數百

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

刻面明顯變得不那麼有用序列來審查。

enter image description here

+0

男人!我已經完成了你所說的幾乎所有的事情,但是這個訣竅是在'aes'函數中加入了'group = Seq'。 現在它像一個魅力,非常感謝! 重疊繪圖對我來說不是問題,並且刻面是不可能的,因爲我有超過100個序列。 再次感謝! – Lianzinho