利用gghighlight包高亮你的图形

简介: 如何在利用ggplot高亮出你想要展示的数据呢?gghighlight包,快速解决你的问题~~

如何在利用ggplot高亮出你想要展示的数据呢?gghighlight包,快速解决你的问题~~

准备R包

安装gghighlight包
library(tidyverse)
library(gghighlight)
theme_set(theme_bw())

线图

p <- ggplot(
  airquality,
  aes(Day, Temp, group = Month, color = factor(Month))
) +
  geom_line(size = 2) +
  labs(x = "Day of Month", y = "Temperature") +
  theme(legend.position = "top")+scale_color_igv()
p

91ac0f4985b51abbd89cbda59994810.png

OK,现在让我们高亮Temp列数值最大值大于93的线条,也就是说看看哪个月份的Temp值的最大值是大于93的

p + gghighlight(max(Temp) > 93, label_key = Month)

9ea1f585af9aa2cbe613eb8220f5687.png

直方图

ggplot(iris, aes(Sepal.Length, fill = Species)) +
  geom_histogram(bins = 30) +
  scale_fill_igv()

255e64be34398063653cb421cba57b7.png

现在分面后背景都带上原有的三组的图形,将要展示的组高亮出来。

ggplot(iris, aes(Sepal.Length, fill = Species)) +
  geom_histogram(bins = 30) +
  scale_fill_igv() +
  gghighlight() + 
  facet_wrap(~ Species)

cd0157b05b52a4cb243c4d86cb0bb5b.png

散点图

df <- mtcars %>% mutate(name = row.names(.))
df %>% 
  ggplot(aes(mpg, disp)) +
  geom_point(col = "darkred") +
  gghighlight(disp > 350 & disp <= 400,
              unhighlighted_colour = alpha("steelblue", 0.4),
              use_direct_label = TRUE,
              label_key = name,
              label_params = list(size = 5)) +
  geom_point(col = "darkred", size = 2.5)

b5d8b5dbc3e47c9ab5e00774278f0d7.png

对于条形图的高亮,我想到了另一个包ggcharts,这个包里有也设置有图形高亮的参数

我们这里使用biomedicalrevenue数据集如下,目标是筛选出revenue列大于40的值:

data("biomedicalrevenue")
revenue2018 <- dplyr::filter(biomedicalrevenue, year == 2018)
#先取出大于40的值
a <- subset(revenue2018,revenue > 40)
#水平作图
bar_chart(revenue2018, # 包含绘图数据的数据集
          company,  # 绘制条形图的因子列
          revenue,  # 绘制条形图的数据值
          # top_n = 10, # 条形图仅显示10个条形
          threshold = 0, # 设置条形图中y>40的数值显示
          bar_color = "purple", # 设置条形图的颜色
          highlight = a$company) # 设置需要强调显示的条形

8e040e7f72791f6dd69a121891811af.png

竖直作图用column_chart函数

column_chart(revenue2018, # 包含绘图数据的数据集
          company,  # 绘制条形图的因子列
          revenue,  # 绘制条形图的数据值
          top_n = 10, # 条形图仅显示10个条形
          threshold = 0, # 设置条形图中y>40的数值显示
          bar_color = "purple", # 设置条形图的颜色
          highlight = a$company) # 设置需要强调显示的条形

752a1aafc8ccc369e54be63d8c61e73.png


可以看到,数值的话X坐标轴上的标签没办法调角度,图片也不美观,当然也可以自己设置threshold参数,调整阈值使条形图的数目减少。ggcharts包不只可以画条形图,还可以画哑铃图,棒棒糖图等等,大家自行摸索吧~

最后我们再用我们的主角gghighlight函数

ggplot(revenue2018, aes(company, revenue)) +
  geom_col(fill = 'purple') +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  gghighlight(revenue > 40, label_key = name)+scale_y_continuous(expand = c(0,0))

bf4cb0e05766e0c9a86bb3dfa038d57.png

感觉还是使用gghiglight会更加友好,因为它支持ggplot语法习惯,可以使我们更加个性化的设置图形~~

参考链接:https://www.datanovia.com/en/blog/gghighlight-easy-way-to-highlight-a-ggplot-in-r/


相关文章
|
SQL 搜索推荐 Linux
Seurat -> RunPrestoAll 替代FindAllMarkers 加速DE 搜索
本文分享了一种在Seurat 流程里面加速大型数据集执行 DE 分析的方法 RunPrestoAll 的用法示例,以供参考学习
941 0
|
5月前
|
数据处理 索引 Python
Pandas中的filter函数:有点鸡肋
Pandas中的filter函数:有点鸡肋
154 1
|
Ubuntu 数据安全/隐私保护 Python
用Ubuntu和RStudio Server搭建一个R语言的云平台
前一段介绍过利用Windows系统的Ubuntu子系统搭建数据科学平台,此番来介绍下除了jupyter之外的另外一个数据科学神器:RStudio Server。同时基于Ubuntu和RStudio Server搭建一个R语言的云平台,用于数据分析。
3835 0
|
9月前
|
存储 编解码 数据可视化
【Matplotlib】figure方法之图形的保存
【Matplotlib】figure方法之图形的保存
337 1
|
自然语言处理 安全 数据库
Miniob drop table 实现解析 | 学习笔记
快速学习 Miniob drop table 实现解析
Miniob drop table 实现解析 | 学习笔记
|
Linux Windows Perl
没有生物学重复的转录组数据怎么进行差异分析?
设置生物学重复这个环节也是你实验设计很重要的一part,设置的好对你下游分析也有利,通常我们做转录组测序,需要的样本量每组至少为3个生物学重复,这个处理起来就很合理,并且现在流行的差异分析软件DEseq2,limma,edgeR等等都是针对有重复的数据去做的,但有时候会不幸碰到样品测序失败不能用,导致每组就给你剩一个重复时候该怎么办,之前我有批数据就是这样,但是办法总比困难多不能放过任何实验数据,搜了搜其实还是有一些方法可以去解决的,在这里介绍下我搜到的几种方法。
1150 0
|
Web App开发 JavaScript 前端开发
多线程(Multi-threading)和并行程序(Parallel Programming)详解
多线程(Multi-threading)和并行程序(Parallel Programming)详解
1085 0
多线程(Multi-threading)和并行程序(Parallel Programming)详解
R代码忘记保存,系统崩溃了怎么办?
跑程序时电脑突然崩溃,程序被强制中断导致代码不见了怎么办? 这些糟心的情况想必每个打工人都不想经历,偏偏我就是那个倒霉蛋,今早打开电脑发现昨晚写的代码忘记保存,心态崩到想当场飙眼泪,冷静下来之后开始寻找解决方案
1460 0
R代码忘记保存,系统崩溃了怎么办?
|
机器学习/深度学习 自然语言处理 算法
【文本分类】深入理解embedding层的模型、结构与文本表示
【文本分类】深入理解embedding层的模型、结构与文本表示
863 0
【文本分类】深入理解embedding层的模型、结构与文本表示

热门文章

最新文章