2016-11-10 6 views
1

これはirisデータセットの棒グラフです。各バーの上の文字は、有意差を示し、kruskal-wallis試験から得た。 enter image description hereこのサンプルプロットではあまりにも厄介ではありませんが、私の実際のデータは、エラーバーとバー長の違いがずっと大きいです。そういうわけで、手紙はどこにでもあり、読むのが難しくなります。私は文字が各バーの下、x軸の真上に位置することが可能かどうか疑問に思います。こうすることで、彼らはすべて整列して読みやすくなります。何を考える?geom_barsの下に重要な文字

コード:

library(reshape2) 
library(ggplot2) 
library(agricolae) 
library(Rmisc) 

file<-iris 

melt <- melt(file, id=c("Species")) 

x1 <- summarySE(melt, measurevar = "value", groupvars = c("variable", "Species"), na.rm=TRUE) 

d=list() 
tmp=list() 

for(i in 1:4){ 
    if(var(file[,i]) > 0){ 
    tmp<-c(tmp,colnames(file[i])) 
    krusk <- kruskal(file[,i],file[,5],group=TRUE) 
    krusk$groups<-krusk$groups[order(krusk$groups[,'trt']),] 
    d[[i]]<-as.data.frame(krusk$groups)  
    } 
} 

big_data=do.call(rbind,d) 

plot<- ggplot(x1, aes(x = variable, y = value, fill = Species)) + 
    coord_flip()+ 
    geom_bar(stat = "identity", position =position_dodge(),colour="black",width=.7,size=.5)+ 
    geom_errorbar(aes(ymin=value-se, ymax=value+se), width=.1,size=.5,position=position_dodge(.7))+ 
    theme(
    axis.text = element_text(angle=0, vjust=1,size=8,face="bold"),legend.title=element_blank(),legend.position="bottom", 
    legend.text=element_text(face="italic"))+ 
    labs(title=NULL,x=NULL,y=NULL)+ 
    geom_text(aes(label=big_data$M,colour=Species),position=position_dodge(width=1),vjust=.8,hjust=-1,size=3) 

plot 
+0

コードがエラーを生成します。 'summaySE'関数はどのパッケージに属していますか?しかし、1つの問題は幅のパラメータにある可能性があります。 'position-dodge()'内のwidthパラメータは異なります。それらを同じにする。バーをお互いに突き合わせたい場合は、 'geom_bar()'の中のwidthパラメータを 'position_dodge()'のwidthパラメータと同じにしてください。私が望むようにテキストの上にどのように配置するかを見てください(http://stackoverflow.com/questions/40211451/geom-text-how-to-position-the-テキストオンバー私として/ 40229784#40229784) –

+0

それを指摘してくれてありがとう。編集した投稿に 'library(Rmisc)'が含まれています。私は、バーを読み上げることをさらに困難にするので、バーを突き合わせることは望ましくありません。リンクありがとう。私はバーの終わりにそれらを移動することができますが、私はバーの始めにそれらをしたいと思います。 :) –

答えて

2

このような何か:geom_textについては
y = 0、およびhjust = 1.5を設定します。
バー、エラーバー、およびテキストの覆い焼き幅は同じであることに注意してください。また、バーの幅は覆い焼き幅に等しいので、棒は各変数内でお互いに突き合わせることに注意してください。

plot <- ggplot(x1, aes(x = variable, y = value, fill = Species)) + 
    coord_flip() + 
    geom_bar(stat = "identity", position = position_dodge(width = .7), 
    colour = "black", width = .7, size = .5) + 
    geom_errorbar(aes(ymin = value-se, ymax = value+se), position=position_dodge(width = .7), 
    width = .1, size = .5) + 
    geom_text(aes(y = 0, label = big_data$M, colour = Species), 
    position=position_dodge(width = .7), hjust = 1.5, size = 3) + 
    theme(
    axis.text = element_text(angle=0, vjust=1,size=8,face="bold"),legend.title=element_blank(),legend.position="bottom", 
    legend.text=element_text(face="italic")) + 
    labs(title=NULL,x=NULL,y=NULL) 

plot 
+0

Omg私はとても感動しています!ありがとう、それはとてもきれいです。誰もがどのように素晴らしい見えることができるように写真を含める必要があります! :) –

関連する問題