1

以前の質問への回答に続いて、別の質問があります。

データを再形成せずに、別のカテゴリに応じて異なる色で積み上げ棒グラフをプロットすると同時に、 stats="identity" を使用して各積み上げ領域の値を合計するにはどうすればよいですか?

統計 ID は、値を合計するのにうまく機能しますが、積み上げられていない列の場合です。積み重ねられた列では、積み重ねは何らかの形で「乗算」または「縞模様」になります。下の図を参照してください。

いくつかのデータサンプル:

element <- rep("apples", 15)
qty <- c(2, 1, 4, 3, 6, 2, 1, 4, 3, 6, 2, 1, 4, 3, 6)
category1 <- c("Red", "Green", "Red", "Green", "Yellow")
category2 <- c("small","big","big","small","small")
d <- data.frame(element=element, qty=qty, category1=category1, category2=category2)

そのテーブルを与える:

id  element  qty category1 category2
1   apples   2       Red     small
2   apples   1     Green       big
3   apples   4       Red       big
4   apples   3     Green     small
5   apples   6    Yellow     small
6   apples   2       Red     small
7   apples   1     Green       big
8   apples   4       Red       big
9   apples   3     Green     small
10  apples   6    Yellow     small
11  apples   2       Red     small
12  apples   1     Green       big
13  apples   4       Red       big
14  apples   3     Green     small
15  apples   6    Yellow     small

次に:
ggplot(d, aes(x=category1, y=qty, fill=category2)) + geom_bar(stat="identity")

しかし、グラフは少し乱雑です: 色がグループ化されていません!

ggplot グラフは縞模様です なぜこの動作があるのですか?

データを再形成せずに色を正しくグループ化するオプションはまだありますか?

4

2 に答える 2

2

1 つの方法は、データを で並べ替えることcategory2です。これは呼び出し内でも実行できggplot()ます。

ggplot(d[order(d$category2),], aes(x=category1, y=qty, fill=category2)) + 
             geom_bar(stat="identity")
于 2013-08-06T08:20:45.833 に答える