其他
ggblend绘制完美的散点图
欢迎关注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交流群」,与全国各地上千位小伙伴交流
「关注下方公众号下回更新不迷路」,如需要加入微信交流群可添加小编微信,请备注单位+方向+姓名
往期推荐