前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >文献配套GitHub发表级别绘图03-条形图

文献配套GitHub发表级别绘图03-条形图

作者头像
生信技能树
发布于 2022-03-03 06:20:55
发布于 2022-03-03 06:20:55
1.6K00
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

下面是去年实习生的分享

author: "ylchen"

文章来源:"Preoperative immune landscape predisposes adverse outcomes in hepatocellular carcinoma patients with liver transplantation" (2021,npj Precision Oncology),数据与代码全部公开在https://github.com/sangho1130/KOR_HCC。

下面来实现Fig.2a的条形图(barplots)

一、数据载入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list = ls())
library(reshape2)
library(ggplot2)
library(RColorBrewer)
data <- read.table('../data/Figure 2A input relative score.txt', sep = "\t",header = TRUE, check.names = FALSE)
# 变成因子,调整顺序
data$Status <- factor(data$Status, c("Normal", "FL", "FH", "CS", "DL", "DH", "Nontumor", "Tumor"))
# 行为样本类型,列为细胞
head(data)
# ggplot 画图需要 宽数据变成 长数据 
melt.data <- melt(data, variable.name = 'Cell', value.name = 'Relative')
head(melt.data)

基础R包---reshape2包

melt-把宽格式数据转化成长格式。

cast-把长格式数据转化成宽格式。(dcast-输出时返回一个数据框。acast-输出时返回一个向量/矩阵/数组。)

cast 函数的作用除了还原数据外,还可以对数据进行整合。

dcast 输出数据框。公式的左边每个变量都会作为结果中的一列,而右边的变量被当成因子类型,每个水平都会在结果中产生一列。

reshape2

(另外,tidyr包中gather和spread函数也能实现功能哦!)

二、条形图(相对比例)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 8个样品组的 22种免疫细胞比例 
p <- ggplot(melt.data ,aes(x = Status, # 设置x轴 
                           y = Relative, # 设置y轴
                           fill = Cell))+ # 设置图形填充变量
  geom_bar(stat="identity") + #stat="count"表示条形的高度是y变量的数量    
  #stat="identity"表示条形的高度是y变量的值
  scale_fill_manual(values = colorRampPalette(brewer.pal(11, "Spectral"))(22)) + # 设置填充颜色
  theme_bw() + # 空白背景
  theme(axis.text = element_text(colour = 'black'), #刻度值
        axis.text.x = element_text(angle = 90, hjust = 1), # x轴刻度值
        panel.grid = element_blank()) + # 空白网格线
  labs(x = '', y = 'Relative fraction') # 设置xy轴标签
p
#ggsave('../results/Figure 2A input relative score.pdf', p)

两个知识点

上面画图函数涉及到了颜色与theme的设置,接下来介绍下这两个知识点。

1. 详解RColorBrewer包

  • ggplot2画图时会自带配色设置,但一般比较难看。当想使用一些高级,现有的颜色搭配时,不妨考虑下RColorBrewer包。
  • 下面介绍下基本用法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(RColorBrewer)
display.brewer.all() # 查看所有颜色
# brewer.pal.info  # 返回画板名,最大颜色数,调色板类型,是否对色盲友好

RColorBrewer包提供三种配色方案

  1. 连续型Sequential, 颜色渐变。
  2. 极端型Diverging,生成深色强调两端、浅色表示中部的颜色,可用来标注数据中的离群点。
  3. 离散型Qualitative,生成彼此差异明显的颜色,通常用来标记分类数据。

说明书:https://cran.r-project.org/web/packages/RColorBrewer/RColorBrewer.pdf

在线版:https://colorbrewer2.org/#type=sequential&scheme=BuGn&n=3

display函数显示颜色

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 单独查看分类
display.brewer.all(type = "seq")  # 单独查看第1类颜色
display.brewer.all(type = "qual")
display.brewer.all(type = "div")

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 选择颜色块及数量
cols <- brewer.pal(n=3, name="BuGn")
# name: the name of the color palette you want to use
# n: the number of colors you want from the palette (integer)
cols
# 可视化
display.brewer.pal(n=3, name="BuGn")

加入到ggplot2

主要通过scale_fill_manual函数添加颜色

  1. 先选择色块:调用Spectral调色板,取11个颜色,赋值给cols
  2. 把cols赋值给colorRampPalette
  3. 添加到ggplot2:scale_fill_manual
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 过程如下:先选择色块
# 调用Spectral调色板,取11个颜色,赋值给cols
cols <- brewer.pal(11, "Spectral") 
# 可视化
display.brewer.pal(11, "Spectral")
# 把cols赋值给colorRampPalette
pal <- colorRampPalette(cols) 
image(volcano, col=pal(22)) 
# 数据集volcano,颜色设置为:Spectral调色板选择11个颜色,在这11个颜色之间进行连续取值(共22个颜色)
# 若添加到ggplot2
# scale_fill_manual(values = colorRampPalette(brewer.pal(11, "Spectral"))(22))

2. theme用法

相信大家也留意到上面设置theme时使用了几个函数,但实际上还有很多内容可以调整,下面这个图简直是宝藏!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  theme(axis.text = element_text(colour = 'black'), # 刻度值
        axis.text.x = element_text(angle = 90, hjust = 1), # x轴刻度值
        panel.grid = element_blank()) # 空白网格线

参考:https://ggplot2.tidyverse.org/reference/theme.html

三、条形图(相对比例)

  • 其实就是输入数据的不同
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data <- read.table('../data/Figure 2A input absolute score.txt', sep = "\t",header = TRUE, check.names = FALSE)
head(data)
data$Status <- factor(data$Status, c("Normal", "FL", "FH", "CS", "DL", "DH", "Nontumor", "Tumor"))
melt.data <- melt(data, variable.name = 'Cell', value.name = 'Absolute')
head(melt.data)
p <- ggplot(melt.data ,aes(x = Status, y = Absolute, fill = Cell)) + 
  geom_bar(stat="identity") + 
  scale_fill_manual(values = colorRampPalette(brewer.pal(11, "Spectral"))(22)) + 
  theme_bw() + 
  theme(axis.text = element_text(colour = 'black'),
        axis.text.x = element_text(angle = 90, hjust = 1),
        panel.grid = element_blank()) + 
  labs(x = '', y = 'Absolute fraction')
p
#ggsave('../results/Figure 2A input absolute score.pdf', p)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
🤩 RColorBrewer | 再多的配色也能轻松搞定!~(二)
1写在前面 之前介绍了使用ggsci包进行配色,颜值很高,但有时候你可能需要更多的颜色。 本期介绍一下RColorBrewer包,万金油包,几乎适用任何情况。😘 2用到的包 rm(list = ls()) library(tidyverse) library(RColorBrewer) library(patchwork) 3示例数据 本期就用大名鼎鼎的iris吧。 dat <- iris 4查看所有配色 display.brewer.all() ---- Note! 这个包里包含3种配色,s
生信漫卷
2022/10/31
2.1K0
🤩 RColorBrewer | 再多的配色也能轻松搞定!~(二)
R可视乎|复合饼图系列
散点复合饼图(compound scatter and pie chart)可以展示三个数据变量的信息:(x, y, P),其中x和y决定气泡在直角坐标系中的位置,P表示饼图的数据信息,决定饼图中各个类别的占比情况,如图(a)所示。
庄闪闪
2021/04/09
1.3K0
ggplot2画点和连线展示主成分分析的结果简单小例子
https://github.com/Tom-Jenkins/utility_scripts
用户7010445
2021/03/14
1.3K0
ggplot2优雅的拆分堆砌条形图
❝本节来介绍如何「对堆砌条形图来进行图形拆分」; 加载R包 library(tidyverse) library(patchwork) 定义主题 theme_niwot <- function(){ theme_minimal()+ theme(axis.text = element_text(color = "black",size = 6), strip.text = element_text(color = "black",hjust = 0,
R语言数据分析指南
2022/09/21
5250
ggplot2优雅的拆分堆砌条形图
跟着Nature学绘图(6) PCA分析图表可视化
❝本节来继续进行论文图表复现,主要还是基于「ggplot2」来进行数据可视化 ❞ ❝近期系统整理了一下公众号所写过的一些经典文档,如果需要获取全部代码的欢迎加入小编的VIP交流群,「付费99元,周期一年」群内同步上传代码, 公众号右下角添加微信咨询即可 ❞ 以往案例 本节来复现文章中的Fig3-h 安装并加载R包 package.list=c("tidyverse","ggrepel","factoextra","RColorBrewer") for (package in package.
R语言数据分析指南
2022/09/21
5950
跟着Nature学绘图(6) PCA分析图表可视化
我的 Shiny 练习 | 堆积柱状图
我最近在分析胆汁酸的数据,所以想画个堆积柱状图,看看组间情况,大概的设想就是这样:
生信菜鸟团
2021/02/03
2.6K0
我的 Shiny 练习 | 堆积柱状图
不同的坐标轴转换绘制世界地图
color1<-brewer.pal(9,"YlOrRd")[c(3,4,5,6,7,8,9)]
爱学习的小明明
2020/10/09
1.5K0
不同的坐标轴转换绘制世界地图
nature microbiology图表复现之聚类条形图
「关于jjAnno」更多详细的内容可点击下方链接https://mp.weixin.qq.com/s/CVXsJPPx12saw0WYiReQag
R语言数据分析指南
2022/09/21
6170
nature microbiology图表复现之聚类条形图
文献配套GitHub发表级别绘图之饼图
ggplot2是R语言最流行的第三方扩展包,是RStudio首席科学家Hadley Wickham读博期间的作品。根据其绘图理念,图形由以下几个模块组成:
生信技能树
2022/03/03
2.1K0
文献配套GitHub发表级别绘图之饼图
多系列数据核密度图
ggridges包提供了geom_density_ridges_gradient()函数,用于画核密度估计峰峦图
爱学习的小明明
2020/09/26
2.1K0
多系列数据核密度图
R语言基础绘图教程——第7章:小提琴图
R基础教程可先阅读:R语言编程基础第一篇:语法基础 ggplot2绘制小提琴图 library(ggplot2) library(gplots) library(RColorBrewer) options(StringAsFactors=FALSE) #read in the data file data = read.table('violin_plot.txt', sep="\t", header=T) #take a glance at the data head(data) dim(data) d
DoubleHelix
2019/08/15
3.3K0
R语言基础绘图教程——第7章:小提琴图
文献配套GitHub发表级别绘图04-相关性散点图
文章来源:"Preoperative immune landscape predisposes adverse outcomes in hepatocellular carcinoma patients with liver transplantation" (2021,npj Precision Oncology),数据与代码全部公开在https://github.com/sangho1130/KOR_HCC。
生信技能树
2022/03/03
1.2K0
文献配套GitHub发表级别绘图04-相关性散点图
文献组图
追风少年i
2025/01/07
710
文献组图
R语言之可视化①⑦调色板
在基础图中使用RColorBrewer调色板,brewer.pal()函数用于生成颜色矢量。
用户1359560
2019/02/22
4.3K0
R语言之可视化①⑦调色板
ggplot2散点图直方图条形图
熟悉ggplot2绘图,有一本书,可以介绍大家使用,《R数据可视化手册》第二版
生信喵实验柴
2022/10/25
5740
ggplot2散点图直方图条形图
ggplot2优雅的绘制车轱辘图
❝之前在一篇论文里面看到一张特殊的组合饼图感觉很不错,下面来构建数据进行复现,来看具体案例❞ 加载R包 library(tidyverse) library(scales) library(ggtext) library(patchwork) library(cowplot) library(RColorBrewer) 定义颜色 mycolors <- colorRampPalette(brewer.pal(12,"Paired"))(21) 构建数据集 df <- tribble(~group,~v
R语言数据分析指南
2022/09/21
2720
ggplot2优雅的绘制车轱辘图
R可视化之美化山脊图
基因集可视化是很常见的分析内容,山脊图使用较少,原因可能是默认生成的图片不美观。本文提供山脊图的美化后的效果图,供选择。
生信技能树jimmy
2022/03/14
3.6K0
R可视化之美化山脊图
R语言ggplot2科研数据作图配色的一些小技巧
大家好,在这里给大家介绍一下使用ggplot2绘图调色的几种小方法。正所谓绘图十分钟,调色一小时。图片的配色直接决定了图片质量的好坏。下面讲一下我平时绘图用到的调色工具。
用户7010445
2021/07/12
9.5K0
R语言ggplot2科研数据作图配色的一些小技巧
R绘图笔记 | 散点分布图与柱形分布图
https://docs.qq.com/sheet/DV0dxREV1YkJ0ZmVj
DoubleHelix
2020/11/11
3K0
R绘图笔记 | 散点分布图与柱形分布图
ggplot2包图形参数(坐标轴、分面、配色)整理
R具有强大的统计计算功能和便捷的数据可视化系统。目前R主要支持四套图形系统:基础图形(base)、网格图形(grid)、lattice图形和ggplot2。其中ggplot2凭借强大的语法特性和优雅的图形外观,逐渐成为R中数据可视化的主流选择。
DataCharm
2021/02/22
11.7K0
ggplot2包图形参数(坐标轴、分面、配色)整理
相关推荐
🤩 RColorBrewer | 再多的配色也能轻松搞定!~(二)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验