ggplot2でRの各バーのgeom_barにラベルを付ける方法


99

私はこれを見つけました、ggplot2を使用してRのgeom_barにラベルを配置する方法

ここでは、x軸ごとに2本の棒があるとしましょう。同じようにするにはどうすればよいですか。

私のデータとコードは次のようになります:

dat <- read.table(text = "sample Types Number
sample1 A   3641
sample2 A   3119
sample1 B   15815
sample2 B   12334
sample1 C   2706
sample2 C   3147", header=TRUE)

library(ggplot2)
bar <- ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
  geom_bar(position = 'dodge') + geom_text(aes(label=Number))

次に、以下を取得します。 ここに画像の説明を入力してください

数字のテキストも「覆い焼き」パターンで配置されているようです。私が検索したマニュアルgeom_textいくつかの情報を見つけることが、それを動作させることはできません。

提案?

回答:


142

これを試して:

ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
     geom_bar(position = 'dodge', stat='identity') +
     geom_text(aes(label=Number), position=position_dodge(width=0.9), vjust=-0.25)

ggplotの出力


2
(+1)ステートメントのvjust = -0.5position()に値を追加して、値をバーのすぐ上に配置することもできます。
smillig 2012

2
偉大なおかげで、道により、コードが設定示唆ymaxので aes(x=Types, y=Number, fill=sample, ymax = 16000)、15815は良く示されますのでことを、y軸のために、より広い面積の上部が生成されます。
プリニー

私はこのエラーを受け取ります:エラー:stat_count()は、審美的に使用してはなりません。
userJT 2017年

3
この答えは、新しい構文があるstackoverflow.com/questions/33079500/...
userJT

2
@Seymourgeom_text(..., angle=-90)
RCS

4

rcsの回答に追加するには、xがPOSIX.ctの日付であるときにgeom_bar()でposition_dodge()を使用する場合、幅に86400を掛ける必要があります。たとえば、

ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
 geom_bar(position = "dodge", stat = 'identity') +
 geom_text(aes(label=Number), position=position_dodge(width=0.9*86400), vjust=-0.25)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.