如何在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
相关产品推荐
相关产品推荐

