欢迎关注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)
数据获取
本节内容到此结束,本节内容到此结束,喜欢的小伙伴欢迎分享转发,评论区留言交流可获取数据
网友评论