1

私は ggplot2 を初めて使用するので、この投稿がばかげている場合はご容赦ください。次のコードを使用してデータをプロットしましたが、パブリケーションに必要なスタイルを取得できません。

出力には、次のものが必要です。

  1. 伝説。私のデータの場合、opts(legend.position="top")理由がわからない後は何もありません。また、格子のようcolumns=3に凡例を3列に分割したいと思いますauto.key

  2. fill=c("white","grey20","grey70")factor に従ってグレーシステム(例: )を使用してバーを色付けしplますが、スタイルを変更できないようですscale_colour_manual

  3. x 軸のラベルを水平方向に回転させます。

  4. たぶんy軸?でも、必要だと思いますか?

ところで、出版用の図を準備する方法がわからないので、どんな提案でも大歓迎です!

library(ggplot2)
wt<-gl(3,4,108,labels=c("W30","W60","W90"))
pl<-gl(3,12,108,labels=c("P0","P1","P2"))
gp<-gl(3,36,108,labels=c("A","B","C"))
dat<-cbind(A=runif(108),B=runif(108,min=1,max=10),C=runif(108,min=100,max=200),D=runif(108,min=1000,max=1500))
dat.df<-data.frame(wt,pl,gp,dat)
dat.m<-melt(dat.df)
ggplot(dat.m,aes(x=wt,y=value,group=pl,facet=gp,fill=pl))+
        stat_summary(fun.y=mean,geom="bar",size=2,position="dodge")+
        stat_summary(fun.ymin=function(x)(mean(x)-sd(x)/sqrt(length(x))),geom="errorbar",
                    fun.ymax=function(x)(mean(x)+sd(x)/sqrt(length(x))),position="dodge")+
                    facet_grid(variable~facet,scale="free_y")+ opts(legend.position="top")+ 
                    scale_colour_manual(values = c("red", "blue", "green")) 

私の出力

4

1 に答える 1

7

ここにいくつかのポインタがあります:

  1. 水平方向の凡例を取得するには、opts(legend.direction="horizontal")

  2. バーの塗りつぶしを変更するには、を指定する必要がありますscale_fill_manual(values=c("white", "grey20", "grey70"))。あなたの例では、fillをplに正しくマッピングしています。欠落している唯一のステップは、手動スケールを色ではなく塗りつぶしにマップすることです。通常、色はバーの輪郭を指し、塗りつぶしはバーの内側を指します。

  3. 軸テキストの角度を回転するには、を使用しますopts(axis.text.x = theme_text(angle=45))。デフォルトの向きは水平なので、説明には45度を使用します。

  4. 「たぶんy軸」とはどういう意味かわかりません。おそらく、y軸を表示したくない場合は、次の方法でy軸を抑制できます。opts(axis.title.y = theme_blank())

あなたの例は再現可能ではなかったので、私はいくつかのデータを発明しなければならなかったことに注意してください。あなたの例が再現可能であることを確認すれば、私たちがより簡単に対応できるようにすることができます。

  • のデータはありませんyear
  • trtdata.frameにへの参照があります
  • のデータを設定しますgrpが、それを次のように参照しますgp

私のコード:

dat.df <- data.frame(
    gp = gl(3, 36, 108, labels=c("A", "B", "C")),
    yr = sample(2000:2010, 108, replace=TRUE),
    A=runif(108),
    B=runif(108, min=1, max=10),
    C=runif(108, min=100, max=200),
    D=runif(108, min=1000, max=1500)
)
dat.m <- melt(dat.df)

ggplot(dat.m, aes(x=wt, y=value, group=pl, facet=gp, fill=pl))+
    stat_summary(fun.y=mean, geom="bar", size=2, position="dodge")+
    stat_summary(fun.ymin=function(x)(mean(x)-sd(x)/sqrt(length(x))), geom="errorbar", 
        fun.ymax=function(x)(mean(x)+sd(x)/sqrt(length(x))), position="dodge")+#, position="dodge"
    facet_grid(variable~facet, scale="free_y")+
    scale_fill_manual(values=c("white", "grey20", "grey70")) +
    opts(
        legend.position="top", 
        legend.direction="horizontal",
        axis.text.x = theme_text(angle=45),
        axis.title.y = theme_blank()
    ) 

ここに画像の説明を入力してください

于 2011-04-26T06:18:44.277 に答える