ggforce优雅的绘制多组椭圆图

2023-08-18 13:43:31 浏览数 (2)

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

❝本节来介绍如何使用「ggforce」包来自定义绘制多组椭圆图可以看作与韦恩图类似但是在布局上也有些许不同,下面小编就通过一个案例来进行展示数据为随意构建无实际意义仅作图形展示用,希望各位观众老爷能够喜欢。 ❞

加载R包

代码语言:javascript复制
library(tidyverse) 
library(ggforce) 
library(PrettyCols)  

自定义颜色

代码语言:javascript复制
bg <- "white"  # 设置背景颜色为白色
pal <- prettycols("Dark")  # 创建一个名为"Dark"的漂亮颜色调色板

导入数据

代码语言:javascript复制
df <- read_tsv("data.xls")

绘制多组椭圆图

代码语言:javascript复制
ggplot()    # 创建一个ggplot对象
  geom_ellipse(aes(x0 = 0, y0 = 0, a = 5, b = 3, angle = 225),  # 添加椭圆
               fill = pal[1], colour = pal[1],  alpha = 0.5)    # 设置填充色、边框颜色和透明度
  geom_ellipse(aes(x0 = 6, y0 = 0, a = 5, b = 3, angle = 45),  # 添加椭圆
               fill = pal[2], colour = pal[2], alpha = 0.5)    # 设置填充色、边框颜色和透明度
  geom_ellipse(aes(x0 = 3, y0 = 5.5, a = 5, b = 3, angle = 0),  # 添加椭圆
               fill = pal[3], colour = pal[3], alpha = 0.5)    # 设置填充色、边框颜色和透明度
  geom_circle(aes(x0 = 7.5, y0 = -3.5, r = 1.2),  # 添加圆
              fill = pal[4], colour = pal[4], alpha = 0.5)    # 设置填充色、边框颜色和透明度
  geom_text(data = filter(df, size == 1),  # 添加文本标签,只选择大小为1的数据
            aes(x = x, y = y, label = label_en, angle = angle),  # 设置位置、标签和角度
            colour ="white", size = 10)   # 设置文本颜色为白色,大小为10
  geom_text(data = filter(df, size > 1), # 添加文本标签,只选择大小大于1的数据
            aes(x = x, y = y, label = label_en, angle = angle), # 设置位置、标签和角度
            colour = "white", size = 4)   # 设置文本颜色为白色,大小为4
  guides(size = "none")   # 隐藏size的图例
  coord_equal()   # 设置坐标系相等
  theme_void() # 使用空白主题

0 人点赞