前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >R语言 | 条形图绘制

R语言 | 条形图绘制

作者头像
生信real
发布于 2022-03-29 09:27:50
发布于 2022-03-29 09:27:50
2.3K00
代码可运行
举报
文章被收录于专栏:Linux基础入门Linux基础入门
运行总次数:0
代码可运行

本次内容介绍条形图的绘制,包括基本条形图、簇状条形图、频数条形图、堆积条形图、百分比条形图。

下次将介绍如何对条形图着色、调整条形图的宽度和间距、添加数据标签等内容。

1绘制基本条形图

演示数据

以gcookbook包中的pg_mean数据集为例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载gcookbook是为了调用pg_mean数据集
> library(gcookbook)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# pg_mean数据内容
> pg_mean
  group  weight
1  ctrl   5.032
2  trt1   4.661
3  trt2   5.526

绘图代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(pg_mean,aes(x = group,y = weight)) + geom_col()

输出图片

简单美化

默认情况下,条形图的填充色为深灰色且无边框。我们可以通过fill参数改变填充色,colour为条形图添加边框线。这里我将填充色更改为亮黄色,边框线为黑色。注意,颜色要用""引起来哦!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(pg_mean,aes(x = group,y = weight)) + geom_col(fill="lightyellow",colour="black")

2绘制簇状条形图

演示数据

以gcookbook包中的cabbage_exp数据集为例,该数据集包含两个分类变量Cultivar和Date和一个连续变量Weight。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cabbage_exp数据内容
> cabbage_exp
  Cultivar  Date  Weight     sd      n      se
1      c39   d16   3.18  0.9566144  10  0.30250803
2      c39   d20   2.80  0.2788867  10  0.08819171
3      c39   d21   2.74  0.9834181  10  0.31098410
4      c52   d16   2.26  0.4452215  10  0.14079141
5      c52   d20   3.11  0.7908505  10  0.25008887
6      c52   d21   1.47  0.2110819  10  0.06674995

绘图代码

将分类变量映射到fill参数上,并运行命令geom_col(position = 'dodge')。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) +
  geom_col(position = 'dodge')

Tips:最基本的条形图通常只对应一个绘制在x轴上的分类变量和一个绘制在y轴上的连续型变量。

有时候,我们想额外添加一个分类变量跟x轴上的分类变量一起对数据进行分组。

此时,可通过将该分类变量映射给fill参数来绘制簇状条形图,这里的fill参数用来指定条形的填充色。

position='dodge'以使得两组条形在水平方向上错开排列,否则,系统会输出堆积条形图。

输出图片

3 绘制堆积条形图

演示数据

同上,以gcookbook包中的cabbage_exp数据集为例,该数据集包含两个分类变量Cultivar和Date和一个连续变量Weight。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cabbage_exp数据内容
> cabbage_exp
  Cultivar  Date  Weight     sd      n      se
1      c39   d16   3.18  0.9566144  10  0.30250803
2      c39   d20   2.80  0.2788867  10  0.08819171
3      c39   d21   2.74  0.9834181  10  0.31098410
4      c52   d16   2.26  0.4452215  10  0.14079141
5      c52   d20   3.11  0.7908505  10  0.25008887
6      c52   d21   1.47  0.2110819  10  0.06674995

绘图代码

使用geom_col()函数,并映射一个变量给填充色参数(fill)即可。该命令会把Date对应到x轴,并以Cultivar作为填充色。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) + geom_col()

输出图片

反转图例顺序

我们可以通过guides()函数对图例顺序进行调整,指定图例所对应的需要调整的图例属性,本例中对应的是填充色(fill)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) + 
geom_col() + 
guides(fill = guide_legend(reverse = T))

反转堆积顺序

可以通过position_stack(reverse = T)来实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) +
geom_col(position = position_stack(reverse = T)) +
guides(fill=guide_legend(reverse = T))

4 绘制百分比条形图

演示数据

同上,以gcookbook包中的cabbage_exp数据集为例,该数据集包含两个分类变量Cultivar和Date和一个连续变量Weight。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cabbage_exp数据内容
> cabbage_exp
  Cultivar  Date  Weight     sd      n      se
1      c39   d16   3.18  0.9566144  10  0.30250803
2      c39   d20   2.80  0.2788867  10  0.08819171
3      c39   d21   2.74  0.9834181  10  0.31098410
4      c52   d16   2.26  0.4452215  10  0.14079141
5      c52   d20   3.11  0.7908505  10  0.25008887
6      c52   d21   1.47  0.2110819  10  0.06674995

绘图代码

用position = "fill",将y的值调整为0~1。

scale_y_continuous(labels=scales::percent),让标签以百分比的形式展示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) +
geom_col(position = 'fill') + 
scale_y_continuous(labels = scales::percent)

输出图片

5 绘制频数条形图

演示数据

以ggplot2包中的diamonds数据集为例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
> library(ggplot2)
> head(diamonds)
# A tibble: 6 x 10
  carat cut      color clarity depth table price     x     y     z
  <dbl> <ord>    <ord> <ord>   <dbl> <dbl> <int> <dbl> <dbl> <dbl>
1  0.23 Ideal    E     SI2      61.5    55   326  3.95  3.98  2.43
2  0.21 Premium  E     SI1      59.8    61   326  3.89  3.84  2.31
3  0.23 Good     E     VS1      56.9    65   327  4.05  4.07  2.31
4  0.29 Premium  I     VS2      62.4    58   334  4.2   4.23  2.63
5  0.31 Good     J     SI2      63.3    58   335  4.34  4.35  2.75
6  0.24 Very Go~ J     VVS2     62.8    57   336  3.94  3.96  2.48

绘图代码

使用geom_bar(),同时不要映射任何变量到y参数,geom_bar()函数在默认情况下将参数设定为stat = "bin",该操作会自动计算每组(根据x轴上面的变量进行分组)变量对应的观测值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(diamonds,aes(x = cut)) + geom_bar()

输出图片

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
了解绘制条形图和折线图的细节
考虑到公众号后台数不胜数的提问其实并不是生物学知识或者数据处理知识的困惑,仅仅是绘图小技巧以及数据转换的困难。所以我们一再强调系统性掌握编程知识的重要性,在这个打基础方面我让实习生“身先士卒”,起码每个人在每个编程语言上面都需要看至少五本书而且每本书都需要看五遍以上,并且详细的记录笔记。
生信技能树
2022/06/08
7.2K0
了解绘制条形图和折线图的细节
数据处理的R包
整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply - Combine。plyr包是Hadley Wickham为解决split – apply – combine问题而写的一个包。使用plyr包可以针对不同的数据类型,在一个函数内同时完成split – apply – combine三个步骤。plyr包的主函数是**ply形式的,函数名的第一个字符代表输入数据的类型,第二个字符代表输出数据的类型,其中第一个字符可以是(d、l、a),第二个字母可以是(d、l、a、_ ),不同的字母表示不同的数据格式,d表示数据框格式,l表示列表,a表示数组,_则表示没有输出。
润森
2020/02/17
4.7K0
数据处理的R包
数据挖掘知识脉络与资源整理(九)–柱形图
柱形图 简介 英文:histogram或者column diagram 排列在工作表的列或行中的数据可以绘制到柱形图中。在柱形图中,通常沿水平轴组织类别,而沿垂直轴组织数值。 柱形图具有下列图表子类型
小莹莹
2018/04/25
3.8K0
数据挖掘知识脉络与资源整理(九)–柱形图
这些条形图的用法您都知道吗?
条形图专用于离散变量和数值变量之间的可视化展现,其通过柱子的高低,直观地比较离散变量各水平之间的差异,它被广泛地应用于工业界和学术界。在R语言的ggplot2包中,读者可以借助于geom_bar函数轻松地绘制条形图。对于条形图大家对其的印象是什么呢?又见过哪些种类的条形图呢?在本篇文章我将带着各位网友说道说道有关条形图的哪些品种。
1480
2019/08/05
5.7K0
这些条形图的用法您都知道吗?
R-ggchicklet - 圆角条形图绘制
本期开始继续基础图表(柱形图/条形图(bar charts))的绘制推文教程,但在系列绘制之前,我们先介绍下个人较喜欢的一个绘图R包-ggchicklet包,用于绘制带圆角角度的柱形图(Rounded Segmented Column)。主要涉及的知识点如下:
DataCharm
2021/02/22
9640
R-ggchicklet - 圆角条形图绘制
「R」数据可视化19:环状条形图
条形图是科研中常用的图,但是有时候可能你会觉得普通的条形图过于平平无奇。还有些时候展示的空间有限,数据却很庞大,这时再用普通的条形图可能就不利于展示信息了。那么要怎么办呢?不如考虑一下使用环状条形图。我们先来看几个关于环状条形图的例子。
王诗翔呀
2020/07/03
2.7K0
「R」数据可视化19:环状条形图
如何使用 ggplot2 绘制双轴分离图?
最近科研绘图中,需要解决这么一个需求。如何将下图中的左图(低配版)转化为右图(高配版, x,y 轴分离)。
庄闪闪
2022/02/16
1.9K0
如何使用 ggplot2 绘制双轴分离图?
R绘图练习 | 突出显示个别条形的重叠条形图
💡专注R语言在🩺生物医学中的使用 首先是加载R包和数据 library(tidyverse) library(ggtext) library(showtext) showtext_auto() load("E:/R/r-learning/r4ds/000files/df_animals_2.rdata") 主题设置 theme_set(theme_minimal(base_size = 19, base_family = "Girassol")) theme_update( text = elem
医学和生信笔记
2022/11/15
1.3K0
R绘图练习 | 突出显示个别条形的重叠条形图
ggplot2优雅的绘制镶嵌条形图
❝本节来介绍如何使用「ggplot2」来绘制镶嵌条形图,下面通过一个小例子来展示 ❞ 加载R包 library(tidyverse) library(camcorder) library(ggtext) 导入数据 incl_gen_2019 <- read_tsv("incl_gen_2019.xls") %>% mutate(OECD = rowMeans(select(., 3:last_col()))) %>% rename(provisions = 1) %>% add_r
R语言数据分析指南
2022/09/21
6010
ggplot2优雅的绘制镶嵌条形图
R语言之 ggplot 2 和其他图形
ggplot2 包提供了一套基于图层语法的绘图系统,它弥补了 R 基础绘图系统里的函数缺乏一致性的缺点,将 R 的绘图功能提升到了一个全新的境界。ggplot2 中各种数据可视化的基本原则完全一致,它将数学空间映射到图形元素空间。想象有一张空白的画布,在画布上我们需要定义可视化的数据(data),以及数据变量到图形属性的映射(mapping)。
timerring
2023/10/13
5580
R语言之 ggplot 2 和其他图形
ggplot2绘制正负分布条形图
❝本节来介绍如何ggplot2来绘制正负分布的条形图,在之前展示案例的基础上进行了一些小的改动,下面通过1个案例来进行展示 加载R包 library(tidyverse) library(grid) library(ggtext) 导入数据 chocolate <- read_csv('chocolate.csv') mean <- mean(chocolate$rating) 数据清洗 df <- chocolate %>% group_by(company_location) %>%
R语言数据分析指南
2022/09/21
8130
ggplot2绘制正负分布条形图
「R」数据可视化4 : 直方图/条形图
本文作者蒋刘一琦,自嘲是一个有艺术追求的生信狗,毕业于浙江大学生物信息学专业,目前在复旦大学就读研究生,研究方向为宏基因组。
王诗翔呀
2020/07/06
2.9K0
「R」数据可视化4 : 直方图/条形图
双坐标分别绘制条形图和折线图
生信技能树jimmy
2023/09/26
3170
双坐标分别绘制条形图和折线图
R语言之可视化(20)之geom_label()和geom_text()
Geom_text()将文本直接添加到绘图中。 geom_label()在文本后面绘制一个矩形,使其更易于阅读。
用户1359560
2019/02/22
39K1
R语言之可视化(20)之geom_label()和geom_text()
R语言基础绘图教程——第5章:直方图和柱状图
R基础教程可先阅读:R语言编程基础第一篇:语法基础 1 barplot()函数绘制 数据: Group Count1 Count2 Control 10 8 Drug1 28 13 Drug2 23 14 Drug3 9 18 Drug4 15 6 #读入数据 data = read.table("barplot.txt",header=T) #绘制条形图,仔细喊下面没一行代码都生成一个图,看他们的差别会知道参数是干嘛的。 barplot(data[,2]) barplot(data[,2],nam
DoubleHelix
2019/08/15
6.1K0
R语言基础绘图教程——第5章:直方图和柱状图
R语言基础绘图教程——第3章:折线图和带状图
在上一章中我们讲过plot()绘图的基本结构,主要通过type参数来设置绘制图形的类型。
DoubleHelix
2019/08/09
5.2K0
R语言基础绘图教程——第3章:折线图和带状图
R语言基于Excel数据绘制多系列条形图
  本文介绍基于R语言中的readxl包与ggplot2包,读取Excel表格文件数据,并绘制具有多个系列的柱状图、条形图的方法。
疯狂学习GIS
2023/09/18
4690
R语言基于Excel数据绘制多系列条形图
基于R语言股票市场收益的统计可视化分析
金融市场上最重要的任务之一就是分析各种投资的历史收益。要执行此分析,我们需要资产的历史数据。数据提供者很多,有些是免费的,大多数是付费的。在本文中,我们将使用Yahoo金融网站上的数据。
拓端
2020/10/24
2.2K0
动态图可视化:如何、创建具有精美动画图
原文链接:http://tecdat.cn/?p=8003 演示数据集 library(gapminder) head(gapminder) ## # A tibble: 6 x 6 ## cou
拓端
2021/12/16
8630
动态图可视化:如何、创建具有精美动画图
R语言可视化—饼图
今天开始进行R语言可视化的练习,主要参照的是文献《Preoperative immune landscape predisposes adverse outcome in hepatocellular carcinoma patients with liver transplantation》中的配图,尽量复现,顺便以此夯实R语言基础操作。今天复现文章中的Fig.1A,即饼图绘制。
sheldor没耳朵
2024/08/14
2550
R语言可视化—饼图
相关推荐
了解绘制条形图和折线图的细节
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文