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

R语言ggplot绘制散点图时如何仅筛选展示前五类选项

需求说明

需要基于dslabs包的2016年美国大选民调数据绘制散点图,图中仅展示排名前五的民调机构(pollster),而非全量民调机构。

  • 原始代码运行输出效果:
    原始代码输出的全量民调散点图
  • 预期实现效果:
    仅展示前五民调机构的目标散点图
实现代码

核心思路是先按指定规则筛选出排名前五的民调机构,过滤数据集后再传入ggplot绘图,以下是可直接运行的完整代码:

library(tidyverse)
library(dslabs)

# 加载并预处理基础民调数据
data(polls_us_election_2016)
polls <- polls_us_election_2016 %>%
  filter(state == "U.S." & enddate >= "2016-10-31" &
           (grade %in% c("A+","A","A-","B+") | is.na(grade))) %>%
  mutate(spread = rawpoll_clinton/100 - rawpoll_trump/100)

# 保留原有统计量计算逻辑
d_hat <- polls %>%
  summarize(d_hat = sum(spread * samplesize) / sum(samplesize)) %>%
  pull(d_hat)
p_hat <- (d_hat+1)/2
moe <- 1.96 * 2 * sqrt(p_hat * (1-p_hat) / sum(polls$samplesize))

# 筛选排名前五的民调机构:以下示例按民调发布数量降序取前五,可按需替换排名规则
top5_pollster <- polls %>%
  count(pollster, sort = TRUE) %>%
  slice_max(n, n = 5) %>%
  pull(pollster)

# 过滤数据后绘图
polls %>%
  filter(pollster %in% top5_pollster) %>%
  ggplot(aes(spread, pollster)) +
  geom_point(color = "black")
注意事项
  • 原代码中geom_point()传入的binwidth参数属于无效参数,该参数仅适用于直方图类几何对象,散点图不需要设置,已移除避免运行警告。
  • 如果需要按其他规则(比如总样本量、平均民调误差等)选前五,只需修改筛选top5_pollster部分的统计排序逻辑即可。

内容的提问来源于stack exchange,提问作者Madhav Ddas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:27:17