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

如何在ggplot中删除指定柱状条?或拆分两类柱状图为两张图

解决ggplot单类别柱状图/拆分双类别图的方法

一、只展示单个类别(比如Private或Public)

直接在绘图前过滤数据集,保留你需要的类别即可,两种常见写法:

1. Base R 写法(无需额外包)

# 保留Private类别
filtered_data <- subset(data1, WellClass == "Private")
pp <- ggplot(filtered_data, aes(x=WellClass)) 
pp + geom_bar(aes(y = ..prop.., group = 1))

# 要保留Public的话,把"Private"换成"Public"即可

2. Tidyverse 写法(需要dplyr包)

library(dplyr)
library(ggplot2)

# 保留Public类别
filtered_data <- data1 %>% filter(WellClass == "Public")
ggplot(filtered_data, aes(x=WellClass)) + 
  geom_bar(aes(y = ..prop.., group = 1))

二、拆分成两张独立的图

有两种简单方式实现:

1. 用分面自动拆分(一张画布上的两个子图)

pp <- ggplot(data1, aes(x=WellClass)) + 
  geom_bar(aes(y = ..prop.., group = 1)) +
  facet_wrap(~WellClass, scales = "free_x") # 按WellClass自动拆分出两个子图

2. 生成两张完全独立的图(可分别保存或展示)

可以手动编写两个绘图代码,也可以批量生成:

# 手动生成两张独立图
p_private <- ggplot(subset(data1, WellClass == "Private"), aes(x=WellClass)) +
  geom_bar(aes(y = ..prop.., group = 1))

p_public <- ggplot(subset(data1, WellClass == "Public"), aes(x=WellClass)) +
  geom_bar(aes(y = ..prop.., group = 1))

# 查看图直接调用变量即可
p_private
p_public

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 09:36:25