1

私はいくつかのデータを次のように集約することができました:

   Month Year Number
1     1  2011   3885
2     2  2011   3713
3     3  2011   6189
4     4  2011   3812
5     5  2011    916
6     6  2011   3813
7     7  2011   1324
8     8  2011   1905
9     9  2011   5078
10   10  2011   1587
11   11  2011   3739
12   12  2011   3560
13    1  2012   1790
14    2  2012   1489
15    3  2012   1907
16    4  2012   1615

月の棒が隣り合っている棒グラフを作成しようとしているので、上記の例では、1月から4月に2つの棒(2011年と2012年に1つずつ)があり、残りの月には1つの棒だけが表示されます。 2011年。

を使用するbeside=T必要があることはわかっていますが、棒グラフを正しく表示するには、何らかのマトリックスを作成する必要があると思います。そのステップが何であるかを理解するのに問題があります。私はそれが関係しているかもしれないと感じていますmatrixが、何らかの理由で私は非常に単純な解決策のように見えるものに完全に困惑しています。

また、私はこのデータを持っています:y=c('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')これをnames.argで使用したいと思います。上記のデータで使用しようとすると、未定義の列が選択されていることがわかります。これは、で16個の変数が必要であることを意味しますy。どうすればこれを修正できますか?

4

1 に答える 1

5

使用barplotするには、データを再配置する必要があります。

dat <- read.table(text = "   Month Year Number
1     1  2011   3885
2     2  2011   3713
3     3  2011   6189
4     4  2011   3812
5     5  2011    916
6     6  2011   3813
7     7  2011   1324
8     8  2011   1905
9     9  2011   5078
10   10  2011   1587
11   11  2011   3739
12   12  2011   3560
13    1  2012   1790
14    2  2012   1489
15    3  2012   1907
16    4  2012   1615",sep = "",header = TRUE)

y <- c('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')

barplot(rbind(dat$Number[1:12],c(dat$Number[13:16],rep(NA,8))),
        beside = TRUE,names.arg = y)

ここに画像の説明を入力してください

または、次のようにデータでggplot2を使用できます。

dat$Year <- factor(dat$Year)
dat$Month <- factor(dat$Month)
ggplot(dat,aes(x = Month,y = Number,fill = Year)) + 
    geom_bar(position = "dodge") + 
    scale_x_discrete(labels = y)

ここに画像の説明を入力してください

于 2012-04-26T20:02:22.547 に答える