Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ggplot2自定义正负分布图文本颜色

ggplot2自定义正负分布图文本颜色

作者头像
R语言数据分析指南
发布于 2023-10-26 11:17:41
发布于 2023-10-26 11:17:41
23100
代码可运行
举报
运行总次数:0
代码可运行

欢迎关注R语言数据分析指南

图形解读

❝主要实现的功能为将条形图的填充颜色与文本颜色对应,那么对于此问题我们可以有如下的解决方法 ❞

1.根据文本内容构建分组 2.针对分组构建不同的颜色 3.构建颜色与文本之间的映射关系

加载R包

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

导入数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chocolate <- read_csv('data.csv')
mean <- mean(chocolate$rating)

数据清洗

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df <- chocolate  %>%
  group_by(company_location) %>% 
  summarise(n = n(),min_rating = min(rating),max_rating = max(rating),
            avg_rating = mean(rating, na.rm = T)) %>% 
  mutate(company_location = fct_reorder(company_location, avg_rating)) %>% 
  filter(n > 3) %>% 
  mutate(rating_diff = avg_rating - mean) %>% 
  filter(abs(rating_diff) >0.05) %>% as.data.frame() %>%
  mutate(group = rep(rep(c("A", "B", "C","D","H"), times = c(10, 6, 9,4,10)), length.out = 39)) %>% 
  mutate(col=case_when(group=="A" ~ "#E6956F",
                       group=="B" ~ "#788FCE",
                       group=="C" ~ "#A6BA96",
                       group=="D" ~ "#CDC3D4",
                       group=="H" ~ "#A88AD2"))

构建文本与颜色映射

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
color_mapping <- df %>% 
  distinct(company_location, col) %>%
  deframe()

数据可视化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df %>%
  ggplot() + 
  geom_col(aes(x = rating_diff, y = company_location, fill = company_location),
           size = 0.25, color = "white")+
  geom_point(aes(x = rating_diff,y = company_location,color=company_location),size=5)+
  geom_text(aes(x = ifelse(rating_diff > 0, -.005, .005),y = company_location, 
                label = company_location,color = company_location,
                hjust = ifelse(rating_diff > 0, 1, 0)),size = 4)+
  geom_vline(xintercept=0,size=1,color="grey40")+
  scale_x_continuous(expand = expansion(add = c(0,.2)),
                     breaks = seq(-.4,.2, by = .2)) + 
  scale_y_discrete(expand = c(.025,.025))+
  scale_fill_manual(values = color_mapping) +
  scale_color_manual(values = color_mapping)+
  coord_cartesian(clip = "off") +
  theme_minimal() +
  theme(panel.grid = element_blank(),
        plot.background = element_rect(fill="Aliceblue",color="Aliceblue"),
        axis.text.y=element_blank(),
        axis.title = element_blank(),
        legend.position = "none",
        axis.text.x = element_text(face = "bold", size =rel(1), color = "black"))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
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
8760
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.5K0
ggplot2优雅的自定义轴文本颜色
ggplot2自定义各类文本颜色
❝本节来介绍一个修改文本颜色的绘图案例,在实际数据分析的过程中某些情况下我们需要为轴文本和图例文本来添加不同的颜色,但是由于在ggplot2中无默认的参数来实现这一功能,在此小编使用另一种巧妙的方法来实现这一需求,整个过程仅参考。希望对各位观众老爷能有所帮助。
R语言数据分析指南
2024/02/22
5430
ggplot2自定义各类文本颜色
R自定义构建函数绘制相关性条形图
构建好绘图函数后让我们来进行可视化的操作,由于原始数据较多在此我们筛选一部分数据进行可视化操作
R语言数据分析指南
2022/09/21
4680
R自定义构建函数绘制相关性条形图
ggplot2优雅绘制多组旭日图
有需要学习数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」下单购买,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码。购买会员文档后微信发小编订单号即邀请进新的会员交流群。
R语言数据分析指南
2024/03/20
5730
ggplot2优雅绘制多组旭日图
ggplot2绘制森林图(有亚组和没亚组)
之前写了很多篇推文介绍森林图,包括了常见的forestplot/forestploter/ggforestplot等多个R包:
医学和生信笔记
2023/02/14
2.8K0
ggplot2绘制森林图(有亚组和没亚组)
ggplot2(r包)绘制基因棒棒糖图
使用geom_segment添加棒棒图的棒子,geom_point添加棒棒图上面的圈圈,geom_text_repel添加对应的文字
生信技能树
2025/02/05
1680
ggplot2(r包)绘制基因棒棒糖图
ggplot2优雅绘制多元素箱线图
R语言数据分析指南
2024/03/20
1750
ggplot2优雅绘制多元素箱线图
ggplot2|玩转Manhattan图-你有被要求这么画吗?
Manhattan图算是GWAS分析的标配图了,可参考Bio|manhattan图 进行绘制。
生信补给站
2020/08/06
1.4K0
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
2880
ggplot2优雅的绘制车轱辘图
R语言ggplot2画热图添加分组信息的颜色条
之前有人在公众号留言问文章开头这幅图如何实现,下面的B图是折线图加柱形图,相对比较容易实现,上面的A图稍微有点复杂,我想到的办法是拼图,图A可以看成三个热图,然后加一个堆积柱形图,最后将四个图组合到一起。那就按照这个思路试一下看能不能实现。 最初的想法是左侧的颜色条用堆积柱形图来实现,又看了一遍Y叔公众号关于aplot这个包的推文,发现他是用geom_tile()函数实现的,仔细想想还是geom_tile()函数实现起来比较方便。 首先解决昨天的遗留问题:ggplot2画图添加文字内容的时候如何添加下划线
用户7010445
2021/01/06
5.4K0
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.6K0
R绘图练习 | 突出显示个别条形的重叠条形图
文献组图
追风少年i
2025/01/07
920
文献组图
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
1160
全网最全的R语言基础图形合集
ggplot2再话箱线图之几何填充
❝VIP群里有观众老爷询问如何对箱线图进行几何形状填充,那么今天就来具体介绍一番;在原有的基础上做了一些小的改动也许恰好您正好有此特殊需求,需要着重体会八个字「变实为虚,变虚为实」,希望对各位观众老爷有所帮助;下面来看具体案例; ❞ 加载R包 library(tidyverse) library(ggsci) library(ggprism) library(rstatix) library(ggpubr) library(ggpmisc) library(ggpattern) 加载数据 gapminde
R语言数据分析指南
2022/09/21
4190
ggplot2再话箱线图之几何填充
生信绘图与配色
3.散点- 几何对象: geom_point()函数,size,alpha为控制点属性的参数
用户11008504
2024/07/02
3160
[GBD数据库挖掘2] ggplot2优雅的展示发病率
❝本节继续来进行GBD数据库的挖掘,小编在去年写过代码的基础上进行了更加精细的加工,各位观众老爷们细细品味,「数据代码已经上传VIP群,请自行下载」 加载R包 library(tidyverse) library(ggh4x) library(ggsci) library(magrittr) library(grid) 导入数据 df <- read_csv("liver_cancer.csv") 数据清洗 df1 <- df %>% select(measure,year,val,location,
R语言数据分析指南
2022/09/23
6950
[GBD数据库挖掘2] ggplot2优雅的展示发病率
ggplot2绘制logo版环状条形图
R语言数据分析指南
2023/09/11
3960
ggplot2绘制logo版环状条形图
[NC图表复现]全球植物病原真菌分布图
R语言数据分析指南
2023/11/23
2860
[NC图表复现]全球植物病原真菌分布图
ggplot2优雅的绘制森林图
❝本节来介绍如何使用ggplot2来绘制森林图,下面通过一个小例子来进行展示 ❞ 加载R包 library(tidyverse) 导入数据 unicox <- read_csv("AKT3_mRNA_OS_pancan_unicox.csv") 绘制森林图 p1 <- ggplot(unicox,aes(HR_log, cancer, col=Type))+ geom_point(aes(size=-log10(p.value)))+ geom_errorbarh(aes(xmax =u
R语言数据分析指南
2022/09/21
1.5K0
ggplot2优雅的绘制森林图
相关推荐
ggplot2绘制正负分布条形图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验