我不是ggplot2包的专家。我有一个子集选择问题。
这是我生成此类图表的代码......
g <- ggplot(merged_data,aes_string(x=Order,fill=var.y)) +
scale_y_continuous(expand = c(0.05,0)) +
xlab(paste("Order","Total number of sequences",sep=" - ")) +
ggtitle(main.str) +
geom_bar(position="fill",
subset = .(Order != ""),
width=0.6,hjust =0)+
geom_text(stat="bin",
subset = .(Order != ""),
color="black", hjust=1, vjust = 0.5, size=2,
aes_string(fill=NULL,x = Order,y = "0", label="..count.."))+
coord_flip()
对于geom_bar
和geom_text
,我选择删除空名称的数据子集
subset = .(eval(parse(text=var.x)) != "")
这是一个只有2个小节的简单示例。 这是一个数据...
Collector<- c("BK","YE_LD","BK","JB","JB",
"BK","BK","BK","JB","YE_LD")
Order<-c("A","B","B","B","A",
"B","B","A","B","B")
data <- data.frame(Order,Collector)
现在我想在我的子集中添加一个截止值...仅显示具有最少计数的变量。
所以,如果我把cutoff = 4 ...我只会得到底部有7个计数的栏,顶部的栏有3个计数不应该出现。
我不知道我怎么能这样做...... 谢谢你的帮助。
答案 0 :(得分:1)
您可以创建数据的子集,并在ggplot
中使用此新对象。以下命令将删除少于四个数据点的所有Order
条件:
subset(data, Order %in% names(which(table(Order) >= 4)))
Order Collector
2 B YE_LD
3 B BK
4 B JB
6 B BK
7 B BK
9 B JB
10 B YE_LD