11

ggplot のバー プロットをかわすと、再び困惑します。数週間前に、バーの上のテキストに注釈を付ける方法について質問したところ ( LINK )、すばらしい反応がありました+ stat_bin(geom="text", aes(label=..count.., vjust=-1))。私はすでにカウントを持っているので、..前後を除いてそれらを提供するだけだとstat_bin考えましpositiondodge。グループの中央にそれらを並べ、上下に調整します。おそらく些細なこと。バーの上にテキストを表示するのを手伝ってください。

ここに画像の説明を入力

mtcars2 <- data.frame(type=factor(mtcars$cyl), 
    group=factor(mtcars$gear))
library(plyr); library(ggplot)
dat <- rbind(ddply(mtcars2,.(type,group), summarise,
    count = length(group)),c(8,4,NA))

p2 <- ggplot(dat,aes(x = type,y = count,fill = group)) + 
    geom_bar(colour = "black",position = "dodge",stat = "identity") +
    stat_bin(geom="text", aes(position='dodge', label=count, vjust=-.6)) 
4

2 に答える 2

12

回避位置を揃えるのに苦労したので、最終的に position_dodge オブジェクトを作成し (これは正しい用語ですか?)、それを変数に保存し、それを両方のジオメトリの位置として使用しました。やや腹立たしいことに、彼らはまだ少し中心から外れているようです。

dodgewidth <- position_dodge(width=0.9)
ggplot(dat,aes(x = type,y = count, fill = group)) + 
  geom_bar(colour = "black", position = dodgewidth ,stat = "identity") +
  stat_bin(geom="text", position= dodgewidth, aes(x=type, label=count), vjust=-1)

ここに画像の説明を入力

于 2012-04-26T04:45:39.497 に答える
11

更新された geom_bar()ニーズstat = "identity"

これもあなたが望むことだと思います。

mtcars2 <- data.frame(type = factor(mtcars$cyl), group = factor(mtcars$gear))
library(plyr); library(ggplot2)
dat <- rbind(ddply(mtcars2, .(type, group), summarise, count = length(group)), c(8, 4, NA))

p2 <- ggplot(dat, aes(x = type,y = count,fill = group)) + 
  geom_bar(stat = "identity", colour = "black",position = "dodge", width = 0.8) +
  ylim(0, 14) +
  geom_text(aes(label = count, x = type, y = count), position = position_dodge(width = 0.8), vjust = -0.6)
p2

ここに画像の説明を入力

于 2012-04-26T05:00:01.363 に答える