Ggplot2 ile R'deki her çubuk için geom_bar üzerine etiketler nasıl yerleştirilir


104

Bunu buldum, ggplot2 ile R'de geom_bar üzerine etiketler nasıl yerleştirilir , ancak etiketleri (sayıları) yalnızca bir çubuğun üzerine koyar.

Diyelim ki her x ekseni için iki çubuk, aynı şey nasıl yapılır?

Verilerim ve kodum şöyle görünüyor:

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))

Sonra şunu alacağız: görüntü açıklamasını buraya girin

Görünüşe göre sayı metinleri de "kaçma" düzeninde konumlandırılmış. Bazı bilgileri bulmak için geom_text kılavuzunu aradım , ancak çalışmasını sağlayamıyorum.

Öneriler?

Yanıtlar:


149

Bunu dene:

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 çıktısı


2
(+1) Değerlerin çubukların hemen üstüne yerleştirilmesi vjust = -0.5için position()ifadeden sonra da ekleyebilirsiniz .
smillig

2
Çok teşekkürler, bu arada, kod ayar yapmayı öneriyor ymax, bu yüzden aes(x=Types, y=Number, fill=sample, ymax = 16000)y ekseni için daha geniş üst alan üretecek, böylece 15815 daha iyi gösterilecek.
Puriney

Şu hatayı alıyorum: Hata: stat_count () estetikle kullanılmamalıdır.
userJT

3
bu cevap daha yeni sözdizimine sahip stackoverflow.com/questions/33079500/…
userJT

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

4

Rcs'nin cevabına eklemek için, x bir POSIX.ct tarihi olduğunda position_dodge () 'u geom_bar () ile kullanmak istiyorsanız, genişliği 86400 ile çarpmalısınız, örneğin,

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)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.