2017-09-14 10 views
3

Rを使用してバープロットを作成しようとしていますが、凡例のカラーリングが間違っています。Rバープロットのグループカラーリングが正しくありません

enter image description here

data = c(29,5,22,12,20,11,14,15,21,8) 

colors = c(gray.colors(1, start = .1),gray.colors(1, start = .1), 
      gray.colors(1, start = .3),gray.colors(1, start = .3), 
      gray.colors(1, start = .5),gray.colors(1, start = .5), 
      gray.colors(1, start = .7),gray.colors(1, start = .7), 
      gray.colors(1, start = .9),gray.colors(1, start = .9)) 

names = c('1','1','2','2','3','3','4','4','5','5') 

barplot(rev(data), horiz=TRUE, col = rev(colors), names.arg = rev(names), 
     legend.text = rev(c("1","2","3","4","5")), las=1, xlim = c(0,30), 
     args.legend = list(x ='bottomright', inset=c(0,0.05)) 
) 

私はこれを引き起こしているものを想像することができます。私の最初の推測では、ベクトルの代わりに行列を使用し、次にbeside = Trueを設定すべきだったということですが、これを行うと、棒が均等に配置されません。

+0

多分私は間違っていますが、伝説の色はあまりにも少ないです。ベクトルの長さを2倍にすると、 'legend.text = rev(rep(c(" 1 "、" 2 "、" 3 "、" 4 "、" 5 ")、each = 2))'もはや間違っているように見える。しかし、伝説はあなたが期待するものではありません。 –

答えて

6

凡例のfillオプションを無効にすることができます。

barplot(rev(data), horiz=TRUE, col = rev(colors), 
     names.arg = rev(names), 
     legend.text = rev(c("1","2","3","4","5")), 
     las=1, xlim = c(0,30), 
     args.legend = list(x ='bottomright', inset=c(0,0.05), 
          fill=unique(colors)) 
) 
関連する問題