2017-01-12 12 views
1

私は行列を印刷しました。私は棒グラフにしたい2つの列を持っていますが、私はどのようにわかりません。試してみると、行列全体がXの値として使われました。ここに私のコードはあります両方の列を棒グラフにするにはどうすればよいですか?

smoke <- matrix(c(53,42,40,40,39,34,34,30,28,24,22,21,20,16,'A','A','A','B','A','A','A','A','B','A','C','B','B', 'B'),nrow=14, ncol = 2) 
colnames(smoke) <- c("NumberofBooks","Grade") 
smoke <- as.table(smoke) 
smoke 

文字に対する数字をプロットすることについて助けがあれば、大歓迎です!

+1

棒グラフをどのように正確に構成しますか? A、B、Cをx軸に、y軸を平均書籍数とします。 –

+0

作成したいプロットの例を提示できますか? (Excelなど) –

+0

はい文字グレードをX軸、書籍数をY軸とする棒グラフです。 –

答えて

0
smoke <- 

matrix(c(53,42,40,40,39,34,34,30,28,24,22,21,20,16,'A','A','A','B','A','A','A','A','B','A','C','B','B', 'B'),nrow=14, ncol = 2) 
colnames(smoke) <- c("NumberofBooks","Grade") 
smoke <- as.data.frame(smoke) 

p <- ggplot(data = smoke, aes(y = NumberofBooks, x = Grade)) 
p <- (p 
     + geom_bar(stat = 'Identity', position = 'dodge', color = 'white') 
    ) 

print(p) 

あなたが探しているものは正確ではありませんが、これはあなたを開始することができます。あなたはggplotを使うためにdata.frameに変更する必要があります

+0

これはうまくいって、感謝しました。 –

+0

@AlexCabo喜んでそれは助けた。助けてくれた人には解決したものとして投票してください。ではごきげんよう。 – MJH

+0

私はあなたの行を区別するのに役立つ 'color = 'white''の上のコードに1つの追加部分を追加しました。 – MJH

0

私の意見では、これらの値を棒グラフにする最も簡単な方法は、行列をデータフレームに置き換えることです。ここのように:

number_of_books <- c(53,42,40,40,39,34,34,30,28,24,22,21,20,16) 
grade <- c('A','A','A','B','A','A','A','A','B','A','C','B','B', 'B') 
smoke <- data.frame(number_of_books,grade) 

bar_graph <- ggplot(smoke, aes(number_of_books,grade)) + geom_bar(stat="identity") 

希望します。

+1

私はxとyの美学が後方にあると思います。 – alistaire

+0

「GGプロットが見つかりませんでした」というエラーが表示されました。 –

+0

@AlexCaboパッケージを持っていない場合は、パッケージをインストールする必要があります。 'install.packages(" ggplot2 ")を使用してください。この質問の' ggplot'タグのため、アンサーはおそらくあなたが仮定しています。 –

0

これはあなたが探しているものですか?

library(dplyr) 
library(ggplot2) 

# install.packages("dplyr"); install.packages("ggplot2") 

smoke <- matrix(c(53,42,40,40,39,34,34,30,28,24,22,21,20,16,'A','A','A','B','A','A','A',' A','B','A','C','B','B', 'B'),nrow=14, ncol = 2) 
colnames(smoke) <- c("NumberofBooks","Grade") 

smoke %>% 
    as.data.frame() %>% 
    group_by(Grade) %>% 
    summarise(NumberofBooks = mean(as.numeric(NumberofBooks))) %>% 
    ggplot(aes(x = Grade, y = NumberofBooks)) + 
    geom_bar(stat = "identity") + 
    xlab("Grade") + 
    ylab("Average Number of Books") + 
    ggtitle("Average number of book by Grade") 
関連する問題