2016-07-05 9 views
2

センサーにこの値がある凡例に情報を追加します。ここでdata.frameからggplot legendに情報を追加してください。

は私のコードです:ここでは

z <- data.frame(
     a=c("sensor 1","sensor 2","sensor 3","sensor 4","sensor 5","sensor 6","sensor 7","sensor 8"), 
     b=c(50, 60, 70, 20,90,110,30,100) 
    ) 

cxc <- ggplot(z, aes(x=a, y=b, fill=factor(b))) + 
     geom_bar(width = 1,stat="identity",colour = "black") + 
     scale_fill_brewer(palette="Blues",type = "seq")+ 
     geom_text(aes(y = b/2,label = b),color = "red",size = 5) 
cxc + coord_polar() + 
    theme_linedraw() + 
    theme(axis.ticks =element_blank(), axis.text.y =element_blank(), axis.title=element_blank(), axis.text.x=element_text(size = 12,angle = 45)) + 
    guides(fill = guide_legend(title = "Value and sensor")) 

は私の結果である:

  • 20(センサ4)
  • 30: enter image description here

    私は伝説にしたいが、このように書きます(センサー7)

  • 50(センサー1)

この色とグラフのスタイルを維持します。

+1

あなたがscale_fill_brewer' –

+0

@RichardTelfordはい 'に' labels'引数を使用することができますが、私は 'scale_fill_brewer入れたときに問題がある(ラベル= Z $ a)を'私は価値のための右のテキストを、テキストを得たが、ありません。私は手書きの書き込みなしに、値のために正しいセンサーをどのように置くことができるのか分かりません。 –

答えて

3

scale_fill_brewerにはlabels引数を、ラベルにはorderを使用して、正しい順序で表示されるようにしてください。

cxc <- ggplot(z, aes(x=a, y=b, fill=factor(b))) + 
    geom_bar(width = 1,stat="identity",colour = "black") + 
    scale_fill_brewer(palette="Blues",type = "seq", labels = paste0(z$b, " (", z$a, ")")[order(z$b)])+ 
    geom_text(aes(y = b/2,label = b),color = "red",size = 5) 
cxc + coord_polar() + 
    theme_linedraw() + 
    theme(axis.ticks =element_blank(), axis.text.y =element_blank(), axis.title=element_blank(), axis.text.x=element_text(size = 12,angle = 45)) + 
    guides(fill = guide_legend(title = "Value and sensor")) 
関連する問題