You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中创建特定气泡图并统计行业Top5出现次数

问题:统计行业在对应区县Top5雇主列表的出现次数并绘制气泡图

需求说明

  • 核心目标:新增一列,统计每个industry1在对应cnty1的Top5雇主列表中出现的次数
  • 气泡图要求:
    • 横轴:升序排列的cnty1(区县代码)
    • 纵轴:行业进入Top5雇主列表的总次数
    • 不同行业用不同颜色的点区分
    • 点的大小:对应行业在该cnty1下进入Top5的次数(例如cnty='003'的每个点数值标签为1,因各行业每季度仅在Top5中出现1次)

样本数据及预处理代码

year1 <- c(2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020)
qtr1 <- c(01,01,01,01,01,01,01,01,02,02,02,02,02,02,02,02)
cnty1 <- c(003,003,001,003,031,031,003,005,001,003,003,007,031,001,003,017)
employment1 <- c(140,251,25,36,99,8415,2514,33141,20,14,185,220,336,901,12,5)
industry1 <- c(312,312,721,721,912,312,514,541,651,721,722,722,612,613,615,312)

dfemp <- data.frame(year1,qtr1,cnty1,employment1,industry1)
dfemp$date<- ymd(paste(dfemp$year1,dfemp$qtr1,"1",sep="-"))
dfemp <- dfemp %>% arrange(desc(date)) %>% group_by(date)%>%slice_max(order_by = employment1,n=5)

解决方案

1. 新增行业出现次数统计列

在预处理后的数据集基础上,按区县和行业分组计数,同时计算每个行业的总上榜次数:

library(dplyr)
library(lubridate)
library(ggplot2)

# 统计各行业在对应区县的Top5出现次数,及行业总上榜次数
dfemp_count <- dfemp %>%
  ungroup() %>%  # 取消原date分组
  group_by(cnty1, industry1) %>%
  summarise(count_top5 = n(), .groups = "drop") %>%
  group_by(industry1) %>%
  mutate(total_count = sum(count_top5)) %>%  # 行业总上榜次数(纵轴数据)
  ungroup() %>%
  mutate(cnty1 = factor(cnty1, levels = sort(unique(cnty1))))  # 横轴按区县代码升序排列

2. 绘制气泡图

用ggplot2实现符合要求的可视化:

ggplot(dfemp_count, aes(x = cnty1, y = total_count)) +
  geom_point(aes(color = factor(industry1), size = count_top5), alpha = 0.7) +
  geom_text(aes(label = count_top5), vjust = -0.5, size = 3) +  # 添加次数标签
  scale_size(range = c(3, 8)) +  # 调整气泡大小范围
  labs(
    x = "区县代码",
    y = "行业进入Top5雇主列表的总次数",
    color = "行业代码",
    size = "该区县下行业进入Top5的次数",
    title = "行业在各区县Top5雇主列表的出现情况"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

关键逻辑说明

  • group_by(cnty1, industry1) %>% summarise(count_top5 = n()):核心统计逻辑,计算每个行业在对应区县的Top5上榜次数
  • mutate(cnty1 = factor(...)):强制横轴按区县代码升序排列,避免默认的字母排序
  • 气泡大小映射count_top5,颜色映射行业代码,同时添加数值标签直观展示次数

内容的提问来源于stack exchange,提问作者Tim Wilcox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:30:41