美文网首页ggplotplot基本图形绘制
ggblend绘制完美的散点图

ggblend绘制完美的散点图

作者: R语言数据分析指南 | 来源:发表于2022-05-13 22:59 被阅读0次

欢迎关注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

数据获取

本节内容到此结束,本节内容到此结束,喜欢的小伙伴欢迎分享转发,评论区留言交流可获取数据

相关文章

网友评论

    本文标题:ggblend绘制完美的散点图

    本文链接:https://www.haomeiwen.com/subject/fptpurtx.html