2016-09-29 51 views
0

我想製作欄V2和長度的條形圖。我還會繪製每組length中的數字的標準偏差。使錯誤欄的組的條形圖

> head(Length_filter3) 
      V1 V2           V3 length 
1 URS00000081EA snRNA    AAACTCGACTGCATAATTTGTGGTAGTGGG  30 
2 URS00000081EA snRNA    AAACTCGACTGCATAATTTGTGGTAGTGGGG  31 
3 URS00000081EA snRNA   AAACTCGACTGCATAATTTGTGGTAGTGGGGGACT  35 
4 URS0000008112A tRNA   AAACTCGACTGCATAATTTGTGGTAGTGGGGGACTG  36 
5 URS000000812A tRNA AAATGTGGGAAACTCGACTGCATAATTTGTGGTAGTGGGGGACT  44 
6 URS0000008121EA tRNA     AACTCGACTGCATAATTTGTGGTAGTGGG  29 


ggplot(Length_filter3, aes(V2,length)) + geom_bar(stat="identity") 
+1

「長度」是每個小節的單個數字。單個數字沒有標準偏差。請澄清。 – Axeman

+1

@ user2300940如果您承認適合您的答案,以及您一直提出的許多問題,這將是禮貌的。 *當有人回答我的問題時,我應該怎麼做?* http://stackoverflow.com/help/someone-answers – FXQuantTrader

回答

2

我假設你正在尋找建立某種形式的彙總統計,如平均,而不是試圖繪製所有的RNA類型(這將不會有誤差線的總長度說到)。

如果它必須是條形圖,您可能需要自己計算這些值。在這裏,我如何計算我從iris數據所需的範圍(使用dplyr):

summarizedData <- 
    iris %>% 
    group_by(Species) %>% 
    summarise(
    mean = mean(Petal.Length) 
    , sd = sd(Petal.Length) 
    , low = mean + sd/(sqrt(n())) * qt(0.025, n()-1) 
    , high = mean + sd/(sqrt(n())) * qt(0.975, n()-1) 
) 


ggplot(
    summarizedData 
    , aes(x = Species 
     , y = mean 
     , ymax = high 
     , ymin = low) 
) + 
    geom_bar(stat = "identity") + 
    geom_linerange() 

enter image description here

或者,你可以讓ggplot爲你做的工作,特別是如果你願意用點和誤差線,而不是柱狀圖(我傾向於選擇這種方式)

ggplot(
    iris 
    , aes(x = Species 
     , y = Petal.Length) 
) + 
    stat_summary(fun.data = mean_cl_normal) 

enter image description here

如果您喜歡,也可以將這些方法結合使用。

0

嘗試FUN功能ggplot選擇stdev。

+0

儘管這可能是解決問題的有價值的提示,但一個好的答案也可以證明解決方案。請[編輯]提供示例代碼來展示你的意思。或者,可以考慮將其寫爲註釋。 –