2017-01-10 9 views
1

2つのバーを近づけてください。私はgeom_barposition_dodgeで "幅"機能を果たしました。今一日中成功しません。前もって感謝します。ggplot2/barplot /バーを近づける/「幅を調整する」が機能しない

マイデータ:

race rate 
1  11.860087 
2  8.894954 

マイコード:

ggplot(visrate, aes(factor(race), rate, fill=race, label=sprintf("%0.1f", round(rate, digits = 1)))) + 
    geom_bar(stat="identity", width=0.25, position = position_dodge(width = 0.01)) + 
    scale_fill_brewer(palette="Set1") + 
    scale_fill_discrete(name="Race", breaks=c("1", "2"),labels=c("Caucasian", "African-American")) + 
    scale_y_continuous(name = "Pancreatic Cancer Hospitalization Rate, 1995-2013",limits = c(0, 12),breaks = seq(0, 12, by = 2)) + 
    ggtitle("Pancreatic Cancer Hospitalizations by Race") + 
    theme(text=element_text(size = 10, family="courier")) + 
    geom_text(size = 4, hjust = 0.5, vjust=1.5) + 
    theme(axis.title.x=element_blank(),axis.text.x=element_blank(),axis.ticks.x=element_blank()) 

Barplot

+1

バー間のスペースを削除するには、 'geom_bar()'に 'width = 1'を設定します。それはあなたが望んだことですか?あなたは2つの 'scale_fill_xxx'を持っています - あなたは1つだけを持つことができます。レースは' aes'の両方の要素でなければなりません –

+0

Richard、ありがとう、はい、私のバーの間にスペースはありません。それらを絞り込むための考え? – Maggie

+1

プロットウィンドウの幅を縮めるだけです –

答えて

1

あなたは避けプロットを必要としない - あなたは複数のバーでを持っていたときに位置覆い焼きが使用されています同じx軸位置。ここでは、2つのx軸の値と2つの棒があり、かわす必要はありません。

geom_barの中では、widthは、バーの間のスペースのパーセンテージが「バーがいっぱい」であることを示します。 width = 0.25があるので、バーはスペースの25%を占めます。あなたが棒をタッチする場合はwidth = 1を設定してください。あなたがほとんど接触するようにしたい場合はwidth = 0.9を使用してください。

また、コメントに指摘されているように、プロットにはscale_fillの1つだけが使用されます。 2つを追加すると、最初のものは無視されます。そして、あなたは因子としてraceを使用して一貫していなければなりません(データフレームであらかじめ変更することをお勧めします)。

ggplot(visrate, aes(factor(race), rate, fill = factor(race), label=sprintf("%0.1f", round(rate, digits = 1)))) + 
    geom_bar(stat= "identity", width = 1) + 
    scale_fill_discrete(name="Race", breaks=c("1", "2"),labels=c("Caucasian", "African-American")) + 
    scale_y_continuous(name = "Pancreatic Cancer Hospitalization Rate, 1995-2013", limits = c(0, 12), breaks = seq(0, 12, by = 2)) + 
    ggtitle("Pancreatic Cancer Hospitalizations by Race") + 
    theme(text=element_text(size = 10, family="courier")) + 
    geom_text(size = 4, hjust = 0.5, vjust=1.5) + 
    theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) 
+0

こんにちはグレゴール、ありがとう!!!私はまだ、エラーを扱っていない: "既存のスケールを置き換える"塗りつぶしのための別のスケール "。以前の「塗りつぶし」呼び出しは「塗りつぶし=因子(レース)」ですか?ここに記入機能を述べたら、私はここのコメントでそれを尋ねることができます。既存の "塗りつぶし"オプションに加えて、 "scale_fill_brewer()"も持っていきたいと思います。以前のscale_fillsにぶつかることなくどのように取り込むことができるか知っていますか? – Maggie

関連する問題