您好,登錄后才能下訂單哦!
這篇文章主要介紹如何利用ggplot2繪制直方圖,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
利用ggplot2繪制直方圖,基于幾何對象geom_histogram()函數
geom_histogram(mapping = NULL, data = NULL, stat = "bin", position = "stack", ..., binwidth = NULL, bins = NULL, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
其中mapping圖形屬性映射涉及多個,需統計的數據映射到X軸,Y軸映射統計類型(包括頻數count 或頻率density等),還涉及其他的圖像屬性等。
統計變換 stat="bin",對應要設置組距間隔 binwidth大小,由此統計該組間間隔內的頻數情況或頻率情況
現利用數據繪制直方圖,同時將繪圖中計算得到的count添加到柱子上。
數據基本情況:
> head(dat) ID CK 1 AT1G01010 3.581590 2 AT1G01020 5.036775 3 AT1G01030 5.035380 4 AT1G01040 2.692716 5 AT1G01046 0.000000 6 AT1G01050 114.336000 > dim(dat) [1] 32483 2
數據第二列CK 表示基因表達量FPKM,再次進行轉換log10(CK)進行繪圖
基礎代碼:
p=ggplot(dat,aes(x=log10(CK)))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) print(p)
其y軸默認count類型,不做設置是等同于 aes(y=..count..),對應頻數類型
注意書寫方式 該數值為統計變換所得衍生,故前后各有兩點
p=ggplot(dat,aes(x=log10(CK),y=..count..))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) print(p)
進行文字添加則利用geom_text函數,其aes(label)需由..count..映射,同時在stat 和binwidth的設置必須和此前一致,方可在圖片上添加計算到的頻數
p=p+geom_text(aes(label=as.character(..count..)),stat="bin",binwidth=1,vjust=-0.5) print(p)
頻率圖繪制及density數值添加過程類似:1、aes(y=..density) 2、統計變換等一致 3、density 僅保留兩位小數利用round()
p=ggplot(dat,aes(x=log10(CK),y=..density..))+geom_histogram(stat="bin",binwidth = 1)+xlim(-3,5) p=p+geom_text(aes(label=as.character(round(..density..,2))),stat="bin",binwidth=1,vjust=-0.5) print(p)
以上是“如何利用ggplot2繪制直方圖”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。