欢迎关注R语言数据分析指南
❝本节来介绍如何使用packcircles来计算圆圈大小通过ggplot2来绘制圈图,下面小编就通过一个案例来进行展示数据为随意构建无实际意义仅作图形展示用,添加了详细的注释希望各位观众老爷能够喜欢,「数据+代码已经上传2023VIP群,加群的观众老爷请自行下载」。
❞
关注下方公众号下回更新不迷路
加载R包
library(tidyverse)
# install.packages("packcircles") # 如果没有安装packcircles包,可以先安装
library(packcircles)
library(geomtextpath)
library(ggpattern)
导入数据
languages <- read_tsv("data.xls")
数据清洗
df_raw <- languages %>% arrange(desc(github_language_repos)) %>%
slice(1:5)
整合数据
# 利用packcircles包进行圆圈布局,根据github_language_repos的值计算圆圈大小,并对圆圈半径进行调整
pack <- circleProgressiveLayout(df_raw$github_language_repos, sizetype = "area") %>%
mutate(radius = radius - 100)
# 将圆圈布局的结果与原始数据合并,并为每个圆圈指定一个id
df_plot <- cbind(df_raw, pack) %>% mutate(id = 1:5)
# 利用circleLayoutVertices函数生成每个圆圈上的点的坐标信息
df <- circleLayoutVertices(pack, npoints = 50)
# 为每个圆圈指定一个title,用于绘制文字标签
df$title <- df_plot$title[match(df$id, df_plot$id)]
数据可视化
ggplot() +
# 利用geom_textpath绘制围绕圆圈的文字标签
geom_textpath(data = df, aes(x, y, label = title), hjust = "ymax",size = 4.5) +
# 利用geom_text绘制圆圈内的文字标签,数字使用逗号分隔方便阅读
geom_text(data = df_plot, aes(x , y, label = scales::comma(github_language_repos)),size = 3) +
coord_equal() + # 设置坐标轴等比例
theme_void() + # 设置空白主题,即无背景和坐标轴
scale_pattern_filename_discrete(choices = image) + # 设置图案的选择
theme(legend.position = "none", # 隐藏图例
plot.margin = unit(c(1,1, 1, 1), "cm")) # 设置图形的边距
❝本节介绍到此结束,有需要学习个性化数据可视化的朋友,欢迎到小编的「淘宝店铺」 「R语言数据分析指南」购买「2023年度会员文档」同步更新中「售价149元」,内容主要包括各种「高分论文的图表分析复现以及一些个性化图表的绘制」均包含数据+代码;按照往年数据小编年产出约在150+以上
❞
购买后微信发小编订单截图即邀请进新的会员交流群,小编的文档为按年售卖,只包含当年度的「除系列课程外」的文档,有需要往年文档的朋友也可下单购买,需要了解更多信息的朋友欢迎交流咨询。
淘宝扫一扫
2023会员群案例展示










