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()

空の名前を削除するデータの サブセットを選択し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)

ここに画像の説明を入力

ここで、サブセットにカットオフを追加したいと思います...最小のカウントを持つ変数のみを表示します。

したがって、カットオフ = 4 を設定すると ... 一番下の 7 カウントのバーのみが表示され、3 カウントの一番上のバーは表示されません。

どうすればいいのかわかりません...助けてくれてありがとう。

4

1 に答える 1

1

データのサブセットを作成し、この新しいオブジェクトを で使用できますggplotOrder次のコマンドは、データ ポイントが 4 つ未満のすべての条件を削除します。

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 に答える