2016-05-30 8 views
1

は私が見せたいR:複数列の頻度データからバープロットを作成する方法は?

ID  Class 
a  Class_1 
a  Class_1 
b  Class_1 
b  Class_1 
b  Class_1 

c  Class_2 
c  Class_2 
c  Class_2 
d  Class_2 
d  Class_2 
d  Class_2 

e  Class_3 
f  Class_3 

、次のように私はデータセットを持っていると仮定し、Class_1で 2生徒、Class_2で 2学生とggplotを使用して棒グラフにClass_3で 2学生は(あります)

お時間をいただきまして誠にありがとうございます。ありがとうございました。あなたは上記提供データがデータフレームであると仮定すると、

+0

'データセットのdput'が参考になる必要はありません。 – 989

答えて

1
d <- data.frame(ID = c(letters[c(1,1,2,2,2,3,3,3,4,4,4,5,6)]), 
      Class = c(rep("Class_1", 5), rep("Class_2", 6), "Class_3", "Class_3")) 

p <- ggplot(d, aes (x = Class, fill = ID)) + geom_bar(position="fill") 
plot(p) # check the number of breaks and use it as length 
p + scale_y_continuous(label=seq(0, 2, length=5)) 
# Hoom, something strange ? 

ggplot(d[! duplicated(d),], aes (x = Class, fill = ID)) + geom_bar() 

plot plot

+0

私の謝罪!私の質問は間違っていた。更新された質問をもう一度見たいですか? –

+0

ありがとうございました。それは私の問題を解決しました。 ggplot(d [!duplicated(d)、]、aes(x = Class、fill = ID))+ geom_bar() これは問題なく動作します。しかし、新しいデータセットに2つの列があるときに機能しました。複写機は2つ以上の列に対して異なる結果を与えていたと思います。 –

+0

他の列がある場合、ggplot(d [!duplicated(d [、c(1,2)])、aes(x = Class、fill = ID))+ geom_bar()。 duplicated()のキー列を決めることができます。 – cuttlefish44

0

datと呼ばれる:

library(ggplot2) 

ggplot(dat, aes(x = Class)) + geom_bar() 

は動作するはずです。 geom_barのデフォルトは、周波数を取得することです。あなたが要因の番号の情報を表示したい場合は

+0

こんにちはDavid、私は私の元の投稿、私の謝罪で間違いを犯しました。今、私はそれを修正しました、学生は各クラスのユニークな学生でなければなりません。今はっきりしていますか? –

関連する問題