0

我不是 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()

For geom_barand geom_text I 选择删除空名称的数据子集

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 个计数不应该出现。

我不知道我该怎么做......谢谢你的帮助。

4

1 回答 1

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
于 2012-12-13T19:41:21.340 回答