ggplot2繪圖學習 Bar Plots

2021-03-02 生信小課堂

之前我們學習了ggplot繪製單變量,兩個連續變量的圖形,兩個離散型變量。對於一個離散型變量,一個連續型變量,有很多作圖方式,包括箱圖,點圖等等

• geom_boxplot() for box plot
• geom_violin() for violin plot
• geom_dotplot() for dot plot
• geom_jitter() for stripchart
• geom_line() for line plot
• geom_bar() for bar plot

今天我們介紹一下Bar Plots

主要函數及參數

• Key function: geom_bar()
• Key arguments to customize the plot: alpha, color, fill, linetype and size.

數據類型
library(ggplot2)df <- data.frame(dose=c("D0.5", "D1", "D2"),                 len=c(4.2, 10, 29.5))head(df)df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),                  dose=rep(c("D0.5", "D1", "D2"),2),                  len=c(6.8, 15, 33, 4.2, 10, 29.5))head(df2)

f <- ggplot(df, aes(x = dose, y = len))# 基礎圖形f + geom_bar(stat = "identity")# 改變填充色,並加上y軸數值 (vjust = -0.3)f + geom_bar(stat = "identity", fill = "steelblue")+  geom_text(aes(label = len), vjust = -0.3, size = 3.5)+  theme_minimal()# 把數值放到柱子裡 vjust = 1.6f + geom_bar(stat="identity", fill="steelblue")+  geom_text(aes(label=len), vjust=1.6, color="white", size=3.5)+  theme_minimal()

改變柱子的寬度和順序
f + geom_bar(stat="identity", fill="steelblue",width =0.5)+  geom_text(aes(label=len), vjust=1.6, color="white", size=3.5)+  theme_minimal()+scale_x_discrete( limits=c("D2","D1","D0.5") ) 

分組配色
f + geom_bar(aes(color = dose), stat="identity", fill="white")f + geom_bar(aes(fill = dose), stat="identity")f + geom_bar(aes(color = dose), stat="identity", fill="white") +  scale_color_manual(values = c("#999999", "#E69F00", "#56B4E9"))f + geom_bar(aes(fill = dose), stat="identity") +  scale_fill_manual(values = c("#999999", "#E69F00", "#56B4E9"))

多個分組
g <- ggplot(data=df2, aes(x=dose, y=len, fill=supp))p1<-g + geom_bar(stat = "identity")p2<-g + geom_bar(stat="identity", position=position_dodge())p1+p2

分別添加數值
ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +  geom_bar(stat="identity", position = position_dodge())+  geom_text(aes(label = len), vjust = 1.6, color = "white",            position = position_dodge(0.9), size = 3.5)

如何再堆積的柱子中添加數值呢?這裡需要三步

1. 對數值進行排序

require(plyr)df_sorted <- arrange(df2, dose, supp)head(df_sorted)

2. 分別計算Y軸數值的和

df_cumsum <- ddply(df_sorted, "dose", transform,                   label_ypos=cumsum(len))head(df_cumsum)

3. 畫圖

ggplot(data=df_cumsum, aes(x = dose, y = len, fill = supp)) +  geom_bar(stat = "identity")+  geom_text(aes(y = label_ypos, label = len), vjust=1.6,            color = "white", size = 3.5)

單基因泛癌分析

TCGA單基因免疫相關泛癌分析(應要求,對出圖添加更細緻的描述)

TCGA單基因免疫相關泛癌分析-進階版本

資源貼

生信小課堂資源匯總

相關焦點

  • 乾貨 | 繪圖的基本元素(ggplot2實現)
    用R進行數據可視化可以有多種選擇,你可以用R的基礎繪圖系統,也可以使用其他的包,例如ggplot2、Lattice等等。作為一個懶人,最開始使用基礎的R繪圖系統時感覺非常蹩腳,後來開始嘗試ggplot2便一直用到現在。在ggplot2的github上有一個頁面列出了為什麼使用ggplot2的理由,我個人將這些理由總結為四點,以下將分別說明。
  • R語言——ggplot2的繪圖邏輯
    在R語言裡,談及繪圖,ggplot2是最出名的繪圖包之一,作為一個繪圖神器,它提供了許許多多的功能給用戶使用,僅用短短幾行代碼,一幅幅高端大氣的圖像便躍然紙上,這可能就是ggplot2包的魅力所在。我剛開始學習ggplot2的時候只用於學術上的製圖,對深層的製圖一知半解,趁著有空便重新學習了一下ggplot2包,才發現其背後的製圖邏輯竟然跟GIS的圖層疊加有著高度的相似,下面就是我學習到的內容了。這次使用的數據集是R包內置的iris數據集,是由Edgar Anderson記錄的3種鳶尾花形態數據。
  • 如何在Python裡用ggplot2繪圖
    ggplot2的繪圖方法不僅確保每個繪圖包含特定的基本元素,而且在很大程度上簡化了代碼的可讀性。但是,如果您經常使用Python,那麼實現圖形語法將非常具有挑戰性,因為在流行的繪圖庫(如matplotlib或seaborn)中缺少標準化語法。如果您仍然希望使用圖形語法,那麼Python包plotnine為您提供了另一種選擇。
  • ggplot2繪圖之四:散點圖、折線圖,點線圖
    為避免消化不良,引起不適,特此建議:說明1:為了更全面地了解和學習ggplot2繪圖,建議沒有觀看前三期的同學可以先打卡前三期視頻
  • 如何通過Google來使用ggplot2可視化
    如果你正在為如何畫出各種好看的可視化圖而苦惱,難道你不應該學習一點R語言麼?對了,如果你以為R語言的創造者肉絲兒和蘿蔔特是一對情侶(這裡真的沒有魚香什麼事),那你錯了,因為他倆長這樣!R語言目前比較常用的有三大繪圖系統基本繪圖系統(Base Plotting System)Lattice繪圖系統(Lattice Plotting System)ggplot2繪圖系統(ggplot2 Plotting System)
  • 一文讀懂ggplot2數據可視化
    ggplot2的命令是一種用R實現的繪圖語言ggplot2的代碼相對容易理解,設定各種參數較為方便,圖形也十分美觀,能用相對簡單的代碼在圖形中呈現出非常豐富的信息。不過,ggplot2的語法與傳統R函數的調用方式有很大差別,所以不少人反映學起來有些困難。在ggplot2出現以前,R繪圖都是調用函數,再通過改變函數的參數實現的。
  • 在Python中使用ggplot2風格及語法: plotnine與ggplot|可視化系列05
    繪圖基礎因為plotnine和ggplot兩個庫都對標R的ggplot2庫,他們大部分語句寫法相同,本文不使用from plotnine import * 的寫法,而是採用加前綴的寫法import plotnine as pn,通過pn.ggplot()和gg.ggplot()的寫法區分和對比兩個庫。
  • R語言基礎繪圖barplot與各種條形圖(1)
    此篇主要介紹一下R語言繪製各式的條形圖;需要對R語言有一定的了解,只要有興趣,學習很簡單。
  • R語言實戰(19)——使用ggplot2進行高級繪圖
    引言:在之前的章節中,我們已經學習了利用R的基礎繪圖功能創建一些普通圖形和特殊圖形,本章節我們將學習如何利用ggplot2包對複雜的數據集進行可視化
  • R語言 ggplot2 繪圖入門,看完你就理解ggplot2的繪圖邏輯了
    R語言最擅長繪圖。R語言最擅長的繪圖包是ggplot2,由於很多朋友沒有接觸過ggplot2,必須要對其語言方式有個初步的認識。
  • 【科研貓·繪圖】bar(霸)圖繪製之霸氣滿屏
    很多同學也許會問,bar圖有什麼難的,我科研論文做第一張圖就是bar圖,so~so~easy。當然實驗設計和內容絕對佔99.99%因素,可是縱覽所有高分論文,可以有灌水的文章,卻沒有不好看的圖。很多同學可能遇到這種情況,論文投稿後,reviewer的意見就有:親,圖能否做得更規範(更好看,更美觀)些?
  • ggplot2繪圖學習 Stripcharts
    之前我們學習了
  • ggplot2包的繪圖邏輯簡介
    在R語言裡,談及繪圖,ggplot2是最出名的繪圖包之一,作為一個繪圖神器,它提供了許許多多的功能給用戶使用,僅用短短幾行代碼,一幅幅高端大氣的圖像便躍然紙上,這可能就是ggplot2包的魅力所在。我剛開始學習ggplot2的時候只用於學術上的製圖,對深層的製圖一知半解,趁著有空便重新學習了一下ggplot2包,才發現其背後的製圖邏輯竟然跟GIS的圖層疊加有著高度的相似,下面就是我學習到的內容了。這次使用的數據集是R包內置的iris數據集,是由Edgar Anderson記錄的3種鳶尾花形態數據。
  • R語言繪圖之ggplot2
    那麼今天我們就為大家介紹一下目前在R語言中流行的繪圖包ggplot2。1. ggplot2的安裝:install.packages("ggplot2")。2. ggplot2的繪圖原理: ggplot2的核心理念是將繪圖與數據分離,數據相關的繪圖與數據無關的繪圖分離,並按圖層作圖。
  • R語言統計與繪圖:ggplot2圖形組合布局
    前面我們學習了基礎繪圖包怎麼組合布局圖形,今天來學習兩個新函數,看ggplot2繪製的圖形怎麼組合。ggplot2組合圖形布局可以使用Rmisc包的multiplot()函數,也可以使用ggpubr包的ggarrange()函數。1.
  • ggplot2學習筆記之圖形排列
    作者:嚴濤 浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農,R語言愛好者,愛開源簡介R語言基本繪圖函數中可以利用par()
  • ggplot2|詳解八大基本繪圖要素
    按照ggplot2的繪圖理念,Plot(圖)= data(數據集)+ Aesthetics(美學映射)+ Geometry(幾何對象)。本文將從ggplot2的八大基本要素逐步介紹這個強大的R可視化包。
  • 推薦一份ggplot2畫圖的學習資料
    今天查資料的時候發現的,好多漂亮的圖片,大部分都是藉助ggplot2實現的。提供示例數據和代碼。很好的R語言畫圖學習資料。
  • R語言之ggplot2繪圖
    您可以這樣嵌入一個R代碼塊,本文主要以R語言自帶的數據集為例做介紹:語法/繪圖公式介紹ggplot圖的元素可以主要可以概括如下:最大的是plot(指整張圖,包括background和title),其次是axis(包括stick,text,title和stick)、legend(包括backgroud、text、title)、facet這是第二層次,其中facet可以分為外部strip部分
  • ggplot2高效實用指南 (可視化腳本、工具、套路、配色)
    作者:嚴濤 浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農,R語言愛好者,愛開源ggplot2學習筆記之圖形排列