技術貼 | R語言:ggplot畫柱形圖、排序、著色

2021-02-20 微生態

點擊藍字↑↑↑「微生態」,輕鬆關注不迷路

本文由阿童木根據實踐經驗而整理,希望對大家有幫助。

原創微文,歡迎轉發轉載。

ggplot2函數包ggplot函數geom_bar參數畫柱形圖。主要方法:利用apply(df, FUN=sum)求和;利用df[order(df$sum,decreasing=T),]倒序;利用scale_x_discrete(limits=factor())設置橫軸排序;下面有隨機數據繪製柱形圖。

一、 輸入數據

代碼:

set.seed(1995)  
# 隨機種子
data=matrix(abs(round(rnorm(100, mean=1000, sd=500))), 10, 10)  
# 隨機正整數,20行,20列
colnames(data)=paste("Sample", 1:10, sep=".")  
# 列名-細菌
rownames(data)=paste("Bin", 1:10, sep=".")

圖1

二、求和、排序

參數:

apply(df, n, FUN=sum)

n=1按行求和

n=2按列求和

代碼:

sum=apply(data, 1, sum)  # 求和
bin=rownames(data)  # 提取列名
data_sum=data.frame(bin, sum)  # 新建數據框
data_sum=data_sum[order(data_sum$sum, decreasing=T),]  # 倒序

圖2
三、ggplot畫圖

代碼:

library(ggplot2)
ggplot(data_sum, aes(x=bin, y=sum)) +
geom_bar(stat="identity", fill="blue")+
labs(x="", y="Bin abundance")+
scale_y_continuous(expand=c(0, 0))+
# 調整y軸屬性
scale_x_discrete(limits=factor(data_sum[,1])) +
# 設第一列為因子,不排序
theme(axis.text.x=element_text(angle=45, hjust=1)) +
# angle:調整橫軸標籤傾斜角度
theme(panel.grid=element_blank(), panel.background=element_rect(color='black', fill='transparent'))
# 調整背景

圖3

、設置顏色和圖例

代碼:

ggplot(data_sum, aes(x=bin, y=sum, fill=bin)) +
geom_bar(stat="identity")+
labs(x="", y="Bin abundance", fill="Bin ID")+
scale_y_continuous(expand=c(0, 0))+
# 調整y軸屬性
scale_x_discrete(limits=factor(data_sum[,1])) +
# 設第一列為因子,不排序
theme(axis.text.x=element_text(angle=45, hjust=1)) +
# angle:調整橫軸標籤傾斜角度
theme(panel.grid=element_blank(), panel.background=element_rect(color='black', fill='transparent'))

圖4

你可能還喜歡

1 技術貼 | 16S專題 | 簡單介紹如何用自己的筆記本處理高通量16S數據

2 技術貼 | 宏基因組專題 | 組裝工具盤點和比較

3 技術貼 | R語言菌群Alpha多樣性分析和繪圖

4 技術貼 | 宏轉錄組專題 | DDBJ資料庫:宏轉錄組測序數據下載

5 技術貼 | R語言pheatmap聚類分析和熱圖

微生態科研學術群期待與您交流更多微生態科研問題

(聯繫微生態老師即可申請入群)

了解更多菌群知識,請關注「微生態」。

相關焦點

  • 技術貼 | R語言:ggplot繪圖的Y軸截斷和拼接
    ## ggpubr# 1 普通安裝install.packages("ggpubr")# 2 source安裝packageurl = 'https://cran.r-project.org/src/contrib/ggpubr_0.4.0.tar.gz'install.packages(packageurl, repos = NULL, type
  • 技術貼 | R語言:手把手教你搞定ggplot柱形圖(一)
    以模擬數據為案例,總結ggplot柱形圖繪圖參數。內容如下方目錄所示,一共包含九個部分。此文先展示【1-5】五個部分的代碼和結果圖,【6-9】四個部分將在下一文展示。圖2 2 X軸排序ggplot(data, mapping=aes(x=rownames(data), y=count)) +geom_bar(stat=
  • 技術貼 | R語言:手把手教你搞定ggplot柱形圖(二)
    以模擬數據為案例,總結ggplot柱形圖繪圖參數。內容如下方目錄所示,一共包含九個部分。【1-5】五個部分的內容已在上一篇中展示,本文將展示【6-9】四個部分的代碼和結果圖。目錄一 輸入數據二 畫圖:基礎調整1 初始圖2 X軸排序3 count列排序4 XY軸標籤三 主題調整1 經典主題(無框、無網格、透明背景)
  • 跟著Nature microbiology學畫圖~R語言ggplot2畫柱形圖
    期刊是 Nature microbiologyimage.png今天重複的圖片是Figure3中的柱形圖首先是第一個小圖:柱形圖,誤差棒,顯著性P值第一步是模擬數據image.png數據是三列:第一列用來做X,第二列做Y,第三列做誤差條讀入數據
  • R語言圓角柱形圖—ggchicklet
    在 TidyFriday 公眾號看到的文章《一個小練習:爬取CRAN上的所有R包名稱,發布日期和標題》簡單理解內容就是 R語言柱形圖,但特別的是柱形圖是圓角的,通常ggplot2實現的柱形圖都是直角的;另外一點是柱形圖的配色個人覺得很好看,自己保存下來備用。
  • 技術貼 | R語言:常見的ggplot取色方法
    圖2三、默認顏色ggplot圖3四、數字取色-正序ggplot(df, aes圖6七、RColorBrewer取色:set3為例ggplot(df, aes(x=x, y=y)) +  1 技術貼 | 16S專題 | 簡單介紹如何用自己的筆記本處理高通量16S數據2 技術貼 | 宏基因組專題 | 組裝工具盤點和比較3 技術貼 | R語言菌群Alpha多樣性分析和繪圖
  • 是Excel的圖,不!是R的圖
    R作為可視化的大勢,自然也可以畫出這些圖,有一篇就通過ggplot2包進行了部分總結,甚是有趣,小編復刻學習了一番,現對代碼做簡單注釋,以作分享。)# binwidth設置組距,值越小畫得線越多,密度圖函數colour設置等高線顏色ggplot(df1,aes(id,item_id))+ geom_contour(aes(z=value,colour=..level..)
  • R語言繪製旭日圖(嵌套多層的餅圖或圓環圖)
    接下來就展示這種圖怎樣繪製。KRONA軟體本篇就不涉及它了,主要是R語言的繪製方法,並且R語言也可以繪製這種交互式界面哦。先展示一下Excel作圖,上述一開始時展示的那個示例圖,是直接拿Excel獲得的。如上所示,選中給定數據的列,在Excel上方點擊插入圖表,選擇旭日圖。出來圖片後,再調整字體大小、背景色、主題樣式等就就可以了。 熱身之後,接下來是R語言作圖,可比Excel豐富得多。
  • R軟體 | 繪製柱形圖和折線圖
    R軟體具有很強的數據可視化功能,本推文介紹用R軟體的ggplot2程序包繪製柱形圖和折線圖的代碼。本文中,柱形圖包括簡單柱形圖和簇狀柱形圖,簡單柱形圖可展示單因素分析的結果,簇狀柱形圖展示多因素的結果。軟體要求:R軟體,R-studio,ggplot2程序包。後臺回復DrawByggplot2,可以獲得本文代碼和數據。
  • R語言ggplot2畫帶有空白格的熱圖簡單小例子
    image.png之前有人在公眾號留言問文章開頭這幅圖如何實現,下面的B圖是折線圖加柱形圖,相對比較容易實現,上面的A圖稍微有點複雜,我想到的辦法是拼圖,圖A可以看成三個熱圖,然後加一個堆積柱形圖,最後將四個圖組合到一起。那就按照這個思路試一下看能不能實現。
  • 技術貼 | R語言:線性回歸、geom_text添加回歸方程
    下面介紹R語言中線性回歸分析的基本方法。三、ggplot畫圖 library(ggplot2)p=ggplot^2~"="~r2*","~~italic(p)~"="~p_value,list(a = format(coef(m)[1], digits = 2), b = format(coef(m)[2], digits = 2), r2 = round(summary(m)$r.squared, 3), p_value = round(summary(m)$coefficients[2, 4])
  • R|散點圖+邊際圖(柱形圖,小提琴圖),顏值區UP
    ggplot2-annotation|畫圖點「精」,讓圖自己「解釋」R-ggpmisc|回歸曲線添加回歸方程,R2,方差表,香不香?本文簡單的介紹2種散點圖添加邊際圖的方法。(iris)二 ggplot2 + ggExtra繪製邊際散點圖使用ggplot2繪製散點圖,然後利用ggExtra包的函數添加邊際柱形圖2.1 繪製基礎散點圖
  • R語言畫展ggplot2篇-點圖
    今天用ggplot2實現點圖(Dotplot)的製作。點圖通常用於不同組別間的均數比較,也可以與箱形圖或小提琴圖結合在一起。#查看數據summary(iris)Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min.
  • 跟著Nature Genetics學畫圖~ggplot2畫堆積柱形圖
    今天的筆記記錄的是論文中Figure2圖d中的堆積柱形圖的畫法,(本來今天的推文也計劃將右側的散點圖拼接到堆積柱形圖的右側的內容也記一下的,但是實現的時候遇到一些問題,暫時還沒有重複出來,等到有辦法了再來記錄)
  • Excel能畫的圖R都能畫
    R作為可視化的大勢,自然也可以畫出這些圖,有一篇就通過ggplot2包進行了部分總結,甚是有趣,小編復刻學習了一番,現對代碼做簡單注釋,以作分享。條形圖條形圖就是橫過來的柱形圖,用函數coord_filp()處理逆時針旋轉90°ggplot(df1,aes(var,value))+ geom_bar(aes(fill=item),stat
  • R語言ggplot繪製峰巒圖繪製
    峰巒圖繪製清除當前環境中的變量rm(list=ls())設置工作目錄setwd("C:/Users/Dell/Desktop/R_Plots/19ridge/")使用ggridges包繪製峰巒圖library(ggridges)library(ggplot2)#### Attaching package: 'ggplot2'## The following object is masked from 'package:ggridges':#### scale_discrete_manual# 查看示例數據head
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • R語言的ggplot2+ggforce包繪製散點圖並添加分組邊界
    之前的推文介紹過ggplot2繪圖添加橢圓分組邊界和圓形分組邊界,藉助的函數分別是ggforce包裡的geom_circle()函數今天查找桑基圖的資料的時候發現了一份介紹ggforce這個包的使用方法的文章 https://rviews.rstudio.com/2019/09/19/intro-to-ggforce/ ,發現發現添加分組邊界還有其他的實現方法,今天的推文記錄一下
  • plotmeans圖,用ggplot2這樣畫
    花花寫於2020年4月10日,聽一位雲南農大的學生說,今天陳疏影老師在生信課堂上講到了豆豆寫的簡書教程,並推薦同學們關注我們的公眾號,在這裡我們對陳老師表示衷心的感謝吖,也歡迎雲農的童鞋們~最近我在學統計,學到方差分析的R語言實現,但是還沒有整理成文。今天應該豆豆寫推文的,但他又又又又又又又睡了!!!
  • Python語言plotnine VS R語言ggplot2
    相對於R中的基礎可視化包,是基於圖形語法的繪圖包,一經提出就迅速受到廣大R語言使用者的喜愛。ggplot2包利用圖層疊加的繪圖方式,往圖像上不斷的添加圖形元素、注釋、統計結果等內容。plotnine庫可以看作是在Python中對ggplot2包的一種實現,方便Python對數據可視化的應用。本文章會分別介紹在R和Python中,如何使用相關的庫進行數據可視化分析。