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

如何在ggplot中筛选美英两国数据绘制南瓜重量箱线图?

筛选特定国家数据绘制箱线图的正确方法

两种可行的实现方式:

方法一:在ggplot调用时直接筛选数据

无需提前定义额外变量,直接在ggplot()的数据源中用subset()函数筛选出美国和英国的记录:

ggplot(subset(pumpkin_data, country %in% c("United Kingdom", "United States")), 
       aes(x = weight_lbs, y = country)) + 
  geom_boxplot()

这里用%in%运算符一次性匹配目标国家列表,比分别定义两个逻辑变量更高效简洁。

方法二:先筛选数据集再绘图

如果后续需要复用筛选后的数据集,先将符合条件的数据存入新对象,再基于新数据绘图:

# 基础R语法筛选
filtered_pumpkins <- pumpkin_data[pumpkin_data$country %in% c("United Kingdom", "United States"), ]

# 若使用tidyverse工具包,可改用dplyr的filter语法:
# filtered_pumpkins <- pumpkin_data %>% filter(country %in% c("United Kingdom", "United States"))

ggplot(filtered_pumpkins, aes(x = weight_lbs, y = country)) + 
  geom_boxplot()

关于你之前代码的问题

你单独定义UK_var和US_var得到的是两个逻辑向量,直接将它们传入aes()是错误的——aes()需要映射数据框中已有的变量(比如原数据的country),而非独立的逻辑值。正确思路是先把数据集整体筛选为仅包含目标国家的记录,再用原country变量作为y轴映射。

内容的提问来源于stack exchange,提问作者Tom Murray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:15:40