查看原文
其他

ggblend绘制完美的散点图

ANERYAN R语言数据分析指南 2023-06-15

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

本节来介绍如何使用「ggblend」包来绘制一个完美的散点图,通常如果数据量比较大用散点图来进行展示会存在点的重叠现象,如Figure-1所示;而「ggblend」的出现正好解决了这一问题,下面来看看具体案例

安装R包

安装「ggblend」必须R版本为 R 4.2

install.packages("remotes")
remotes::install_github("mjskay/ggblend")

加载R包

library(tidyverse)
library(ggblend)

定义主题

theme_set(theme_light())

构建数据集

set.seed(1234)
df_a = data.frame(x = rnorm(500, 0), y = rnorm(500, 1), set = "a")
df_b = data.frame(x = rnorm(500, 1), y = rnorm(500, 2), set = "b")

整合数据

df_ab = rbind(df_a, df_b) |>
  transform(order = "draw a then b")

df_ba = rbind(df_b, df_a) |>
  transform(order = "draw b then a")

df <- rbind(df_ab, df_ba)

Figure-1

可以看到A,B两组点都重叠在一起了无法辨别;此类数据的典型散点图存在以下问题:每组中有多少点取决于绘制顺序(a 然后 b与b 然后 a)

df %>% ggplot(aes(x, y, color = set)) +
  geom_point(size = 3) +
  scale_color_brewer(palette = "Set2") +
  facet_grid(~ order)

Figure-2

  • 通过blend函数给重叠的点赋予新的颜色
df %>% ggplot(aes(x, y, color = set)) +
  geom_point(size = 3) |> blend("darken") +
  scale_color_brewer(palette = "Set2") +
  facet_grid(~ order)

Figure-3

  • Alpha blending
df %>% ggplot(aes(x, y, color = set)) +
  geom_point(size = 3) |> blend("multiply") +
  scale_color_brewer(palette = "Set2") +
  facet_grid(~ order)

Figure-4

  • 多重混合模式
df %>% ggplot(aes(x, y, color = set)) +
  geom_point(size = 3) |> blend("lighten") +
  geom_point(size = 3) |> blend("multiply", alpha = 0.65) +
  scale_color_brewer(palette = "Set2") +
  facet_grid(~ order)

多种几何图形混合

df |>
  ggplot(aes(x, y, color = set)) +
  list(
    geom_point(size = 3) |> blend("darken"),
    geom_vline(xintercept = 0, color = "gray75", size = 1.5),
    geom_hline(yintercept = 0, color = "gray75", size = 1.5)
  ) |> blend("hard.light") +
  scale_color_brewer(palette = "Set2") +
  facet_grid(~ order)

参考:https://github.com/mjskay/ggblend

本节内容到此结束,喜欢的小伙伴欢迎分享转发,更加详细的内容请参考官网介绍文档;如果有R包安装问题可以扫描下方二维码加入我QQ交流群进行交流,如未及时回复可添加我的微信

欢迎大家扫描下方二位码加入「QQ交流群」,与全国各地上千位小伙伴交流

「关注下方公众号下回更新不迷路」,如需要加入微信交流群可添加小编微信,请备注单位+方向+姓名

往期推荐

ggplot2优雅绘制小清新版箭头图

哥俩好-ggplot2绘制配对条形图

circlize优雅的绘制多重注释弦图

跟着Nature学绘图(3) 再谈ggplot2绘制热图

跟着论文学习ggplot2绘图

跟着Nature学绘图(2) 箱线图-累积分布曲线图

跟着Nature学绘图(1) 热图|散点图

R包安装终极方案

手把手教你绘制ggplot版circlize图

ggplot2优雅的绘制网络图

手把手教你计算旁系同源基因ka/ks值

R进行三因素方差分析

使用rstatix优雅的进行统计分析

R优雅的进行多因素方差分析

ggplot2优雅的绘制旭日图

ggplot2绘制美美的花瓣图

ggplot2绘制美美的月亮图

手把手教你用OTU表绘制物种组成图

ggplot2绘制美美的棒棒糖图

一行代码优雅的结合饼图与甜甜圈图

MetBrewer一个让你爱不释手的调色板

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存