1

ここに画像の説明を入力

他のすべての列がいっぱいになっているこのエラーが発生していますが、これを除いて?

data=read.csv("data.csv")
     attach(data)
     data$marks<- factor(data$marks, levels = data$marks[order(data$a)])
     c.data=melt(data, id.var="marks")
     n.data = ddply(c.data,.(marks), transform, pos = cumsum(value) - 0.5*value)

plot = ggplot(n.data, aes(x = marks, y = value)) + 
         geom_bar(stat = "identity",aes(fill = variable)) +
         geom_text(aes(label = value, y = pos), size = 3, face="bold", 
                   colour="white") +
         scale_fill_manual(values=c("#800000","#000000")) + 
         scale_y_continuous(limits=c(0, 100), breaks=seq(0,100, by = 10)) + 
         theme(axis.line = element_line(), 
               axis.text.x=element_text(angle=60,hjust=1,colour="white"), 
               axis.text.y=element_text(colour="white"),
               axis.title.x = element_blank(),
               axis.title.y = element_blank(), 
               panel.background = element_blank(), 
               axis.ticks=element_blank()) + 
         labs(fill="")

これは私が使用したコードです

Marks   a   b
1   49  51
2   53  47
3   54  46
4   54  46
5   55  45
6   55  45
7   55  45
8   55  45
9   55  45
10  56  45
11  56  45
12  56  44
13  56  44
14  56  44
15  56  44
16  56  44
17  57  44
18  57  43
19  57  43
20  58  42
21  58  42
22  59  41
23  60  40
24  60  40
25  61  39
26  61  39
27  61  39
28  62  38
29  62  38
30  62  38
31  64  36
32  64  36
33  67  33
34  71  29

これは、整数になるようにポイントを丸めたサンプル データです。

4

1 に答える 1

3

問題で提供した元のデータでは、いくつかの行の合計ab列が 100 を超えています。

apply(df,1,function(x) sum(x[2:3]))
 [1] 100 100 100 100 100 100 100 100 100 101 101 100 100 100 100 100 101 100
[19] 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100

したがって、融解後にデータをプロットしてlimits=内部に設定すると、 scale_y_continuous()100 を超える値はプロットから削除されます。

+ scale_y_continuous(limits=c(0, 100), breaks=seq(0,100, by = 10)) 

aこれに対する解決策は、すべての行の合計が 100 になるようにデータを修正するbか、から削除limits=c(0,100)してscale_y_continuous()追加coord_cartesian()することです。これにより、プロットが限界までズームされます。

+coord_cartesian(ylim=c(0,100))
于 2013-07-23T18:33:44.070 に答える