2

次のアプローチを使用して facet_grid プロットを作成しています。

sample <- read.csv('sample.csv')

ggplot(sample, aes(category, count)) + geom_bar() + facet_grid(. ~ parent_id)

私のデータは次のように構成されています。

id,parent_id, category, count
1,          21,     C1,       4
2,          21,     C2,       7
3,          21,     C3,       4
4,          22,     D1,      28
5,          22,     D2,      20
6,          22,     D3,       0
7,          22,     D5,       1
8,          22,     D6,       4
9,          22,     D7,       1
10,         23,     E1,      17
11,         23,     E2,      33
12,         23,     E3,      31

これをファセット プロットすると、次のようになります。

ここに画像の説明を入力

私が望むのは、各ファセットのカテゴリの数を制限しC1, C2, C3て、最初のプロット (など) にのみ表示することです。ここに表示されるカテゴリの数を制限する方法はありますか?


dput(sample)私の画像を簡単に再現できるように、私のプロットコマンドの出力は次のとおりです。

sample <-  

structure(list(id = 1:12, parent_id = c(21L, 21L, 21L, 22L, 22L, 
22L, 22L, 22L, 22L, 23L, 23L, 23L), category = structure(1:12, .Label = c("     C1", 
"     C2", "     C3", "     D1", "     D2", "     D3", "     D5", 
"     D6", "     D7", "     E1", "     E2", "     E3"), class = "factor"), 
    count = c(4L, 7L, 4L, 28L, 20L, 0L, 1L, 4L, 1L, 17L, 33L, 
    31L)), .Names = c("id", "parent_id", "category", "count"), class = "data.frame", row.names = c(NA, 
-12L))

 ggplot(sample, aes(category, count)) + geom_bar() + facet_grid(. ~ parent_id)
4

1 に答える 1

3

に追加できscales="free_x"ますfacet_grid()。この場合、ファセットごとに、特定のファセットに使用される値の範囲内にのみ x 値があります。追加space="free_x"することで、バーがすべてのファセットで同じ幅になるようにすることができます。

ggplot(sample, aes(category, count)) + geom_bar() + 
  facet_grid(. ~ parent_id,scale="free_x",space="free_x")

ここに画像の説明を入力

于 2013-06-02T18:48:24.787 に答える