前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[会员专享] ggplot2绘制环状正负堆砌条形图

[会员专享] ggplot2绘制环状正负堆砌条形图

作者头像
R语言数据分析指南
发布于 2022-09-23 06:10:39
发布于 2022-09-23 06:10:39
59400
代码可运行
举报
运行总次数:0
代码可运行

「今天VIP群里有观众老爷询问如何绘制环状堆砌条形图」例图如下所示,既然观众老爷们有需求,那小编就来简单写篇文档进行介绍;下面来看具体案例「数据代码已经上传VIP群,请自行下载」

例图

图形解读

❝可以看到就是一张普通的堆砌条形图只不过改为了圆形展示,通过图形我们可以看到数据分为两组,并且每一个样本数值有正负之分,因此与常见的条形图绘制方法无二,只是在于构建极坐标并合理的添加文本;由于小编手里没有合适的数据因此使用R内置数据集来进行展示,下面来看具体细节 ❞

加载R包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(tidyverse)

构建数据

❝由于例图有正负之分,「mtcars」数据集没有,因此我们人为构建一份数据 ❞

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data1 <- mtcars %>% head(6) %>% 
  mutate_if(is.numeric, function(x) x+10) %>% 
  log10() %>% as.data.frame() %>% 
  rownames_to_column("type") %>%
  pivot_longer(-type) %>%
  mutate(type=factor(type)) %>% arrange(type)
 
# 添加负值 
data1<- data1 %>% bind_rows(data1 %>% mutate(value=-value))

计算标签角度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
empty_bar <- 0
data1$id <- seq(1,nrow(data1))
label_data <- data1
number_of_bar <- nrow(label_data)
angle <-  90 - 360 * (label_data$id-0.5) /number_of_bar    
label_data$hjust<-ifelse( angle < -90, 1, 0)
label_data$angle<-ifelse(angle < -90, angle+180, angle)

定义颜色

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
colors <-c("#FED439FF","#709AE1FF",
           "#D5E4A2FF","#197EC0FF","#F05C3BFF","#46732EFF",
           "#71D0F5FF","#370335FF","#075149FF","#C80813FF","#91331FFF",
           "#1A9993FF","#FD8CC1FF")

数据可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(data1,aes(id,value,fill=name))+
  geom_bar(stat="identity",alpha=0.8)+
  scale_fill_manual(values = colors)+
  labs(x=NULL,y=NULL)+
  ylim(-7,10)+
  coord_polar(start =0)+
  theme_void()+
  theme(
    legend.text = element_text(color="black"),
    legend.title=element_blank(),
    legend.spacing.x=unit(0.2,'cm'),
    legend.key=element_blank(),
    legend.key.width=unit(0.3,'cm'),
    legend.key.height=unit(0.3,'cm'),
    legend.position=c(0.5,0.5))+
  # 添加标签
  geom_text(data=label_data,aes(x=id, y=value+1,label=type,hjust=hjust,color=name),
            fontface="plain",size=2.5,show.legend = F,
            angle= label_data$angle,inherit.aes = FALSE)+
  scale_color_manual(values = colors)+
  # 添加标签,若要给标签分配颜色只需要将color写进aes内给定分组映射即可
  geom_text(data=label_data,aes(x=id, y=value+1,label=type,hjust=hjust),
            fontface="plain",size=2.5,show.legend = F,color="black",
            angle= label_data$angle,inherit.aes = FALSE)+
  scale_color_manual(values = colors)+
  # 添加外圈
  geom_segment(aes(x=0, y=8,xend=66.5,yend =8),size=1.5,color="#3B9AB2",
               arrow = arrow(length = unit(0, "npc"),type="closed"))+
  geom_segment(aes(x=0, y=-0.1,xend=66.5,yend =-0.1),size=0.3,color="grey80",
               arrow = arrow(length = unit(0, "npc"),type="closed"))

❝可以看到整个过程还是很简单的,喜欢的观众老爷欢迎分享转发

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

本文分享自 R语言数据分析指南 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ggplot2优雅绘制环状华夫图
❝本节来介绍如何只使用「geom_segment」函数来绘制环状华夫图,这个名称也许更符合示例图表,「数据代码已经上传VIP群,请自行下载」 ❞ 加载R包 library(tidyverse) library(ggtext) 导入数据 df <- read_tsv("data.xls") %>% mutate(count =as.factor(EDA_count)) labels <- tibble(x = 0,y = 1:5, text = c("A", "B","C","D","E")) 数
R语言数据分析指南
2022/09/23
3000
ggplot2优雅绘制环状华夫图
R语言ggplot2做漂亮的抖动散点图(geom_jitter)的一个实例
在网上偶然间发现的一个R语言ggplot2做数据可视化的实例,提供数据和代码,今天的推文把代码拆解一下
用户7010445
2021/12/09
9.8K0
R语言ggplot2做漂亮的抖动散点图(geom_jitter)的一个实例
ggplot2优雅的给传统气泡图添加新元素
❝本节来介绍如何使用ggplot2来给常见的气泡图添加一点新的元素,下面通过1个案例来进行展示; 加载R包 library(tidyverse) 数据清洗 df %>% read_csv('data.txt') %>% mutate(CL = 8 - CL, PR = 8 - PR) %>% filter(year %in% c(1995,2020)) %>% group_by(country) %>% mutate(gap_cl = CL - lag(CL),
R语言数据分析指南
2022/09/21
4570
ggplot2优雅的给传统气泡图添加新元素
ggplot2优雅的绘制圆点柱状图
❝本节来介绍如何灵活使用「geom_segment」与「geom_point」这两个几何对象来构建圆柱形条行图,下面通过1个案例来进行展示; 加载R包 library(tidyverse) 加载数据 data <- read_tsv("data.xls") 数据可视化 ggplot(data,aes(y = reorder(country, diff), x = diff, color=balance))+ geom_segment(aes(yend = country), xend=
R语言数据分析指南
2022/09/21
5100
ggplot2优雅的绘制圆点柱状图
ggplot2优雅的自定义轴文本颜色
❝今天来主要介绍如何在不引入外部几何对象的前提下在图形的原有的基础上「自定义修改轴文本颜色」,也许恰好您正好有此特殊需求,希望对各位观众老爷有所帮助;下面来看具体案例; ❞ 加载R包 library(tidyverse) 数据清洗 data1 <- mtcars %>% head(6) %>% mutate_if(is.numeric, function(x) x+10) %>% log10() %>% as.data.frame() %>% rownames_to_column("ty
R语言数据分析指南
2022/09/21
1.4K0
ggplot2优雅的自定义轴文本颜色
跟着Nature学作图:R语言ggplot2箱线图叠加蜂群图完整示例
https://www.nature.com/articles/s41586-022-04808-9#MOESM8
用户7010445
2023/01/06
1.2K0
跟着Nature学作图:R语言ggplot2箱线图叠加蜂群图完整示例
ggplot2绘制logo版环状条形图
R语言数据分析指南
2023/09/11
3170
ggplot2绘制logo版环状条形图
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
umap/tsne图作为单细胞转录组的王牌图形之一,当seurat 或者 singleR 直接绘制的umap/tsne 图需要调整的时候,可能比较难调整,当然AI或者PS都可以办到 。但是本次主要分享使用ggplot2进行可视化,能比较方便的进行后期的微调 ,也学习回顾了ggplot2的基本参数。
生信补给站
2021/12/24
22.7K1
跟SCI学umap图|  ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
https://www.nature.com/articles/s41586-022-04664-7#Sec33
用户7010445
2023/01/06
2.9K0
跟着Nature学作图:R语言ggplot2环形堆积柱形图完整示例
ggplot2优雅绘制环状堆砌条形图
R语言数据分析指南
2023/08/18
5180
ggplot2优雅绘制环状堆砌条形图
R语言ggplot2画漂亮的环形柱形图的一个实例
代码来源的链接是 https://github.com/NearAndDistant/data_science_with_r
用户7010445
2022/02/21
1.3K0
R语言ggplot2画漂亮的环形柱形图的一个实例
医信融合创新沙龙投稿-圆形柱状图(富集圈图)
我们使用df <- df[-which(df$fraction < 0.03),]去掉部分或用AI处理.
叶子Tenney
2023/03/07
6360
医信融合创新沙龙投稿-圆形柱状图(富集圈图)
ggplot2优雅的绘制箭头表格图
R语言数据分析指南
2023/09/11
4290
ggplot2优雅的绘制箭头表格图
ggplot2-annotation|画图点“精”,让图自己“解释”
可视化的展示方式可以使数据更易读,且容易看出一些数据下隐藏的“结果”,而添加注释则可以进一步聚焦到想重点展示的“信息”。
生信补给站
2020/08/05
6.8K0
ggplot2-annotation|画图点“精”,让图自己“解释”
分面绘图注释增强版之annotation_custom2
❝本节来介绍一种新的方法来进行分面注释,下面通过1个案例来进行展示 加载R包 library(tidyverse) library(ggh4x) library(ggsignif) library(ggsci) library(grid) 定义函数 annotation_custom2 <- function (grob, xmin = -Inf, xmax = Inf, ymin = -Inf, ymax = Inf, data) { layer(data = data, stat = Stat
R语言数据分析指南
2022/09/21
5480
分面绘图注释增强版之annotation_custom2
高度定制的go和kegg富集分析R语言绘图 | Circular barplot
我前面的甲基化教程主要是针对450k这样的芯片,所以champ流程就绰绰有余,很多小伙伴在咱们公众号后台咨询甲基化测序数据分析,恰好最近实习生投稿:
生信技能树
2022/01/21
5.1K0
高度定制的go和kegg富集分析R语言绘图 | Circular barplot
绘图技巧 | 这种精美的”排序图“怎么做?(附练习数据)
今天小编给大家介绍一种”凹凸图(bump charts)“的绘制方法,其绘图函数主要来自R包-ggbump,本期的主要内容如下:
DataCharm
2021/05/27
1.2K0
ggplot2基础绘图之哑铃图
❝本节来分享一个绘制哑铃图的小教程,里面细节满满;各位观众老爷细细品味,下面来看具体案例 ❞ 导入数据 read_tsv("data.xls") %>% distinct(country_name,.keep_all = T) 数据可视化 ggplot(aes(reorder(country_name, duration))) + geom_point(aes(y = start_year, col = continent), size = 5, show.legend = FALSE)
R语言数据分析指南
2022/09/21
3740
ggplot2基础绘图之哑铃图
R语言ggplot2每周一图活动:第四周~簇状柱形图和堆积柱形图
https://github.com/kaustavSen/tidytuesday/blob/master/2021/week_11.R
用户7010445
2022/05/23
6030
R语言ggplot2每周一图活动:第四周~簇状柱形图和堆积柱形图
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
770
全网最全的R语言基础图形合集
推荐阅读
相关推荐
ggplot2优雅绘制环状华夫图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验