Cách đặt nhãn trên geom_bar cho mỗi thanh trong R với ggplot2


99

Tôi đã tìm thấy điều này, Cách đặt nhãn trên geom_bar trong R với ggplot2 , nhưng nó chỉ đặt nhãn (số) trên chỉ một thanh.

Đây là, giả sử, hai thanh cho mỗi trục x, làm thế nào để làm điều tương tự?

Dữ liệu và mã của tôi trông như thế này:

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

Sau đó, chúng tôi sẽ nhận được: nhập mô tả hình ảnh ở đây

Có vẻ như các văn bản số cũng được định vị trong mô hình "né tránh". Tôi đã tìm kiếm hướng dẫn sử dụng geom_text để tìm một số thông tin, nhưng không thể làm cho nó hoạt động.

Gợi ý?

Câu trả lời:


142

Thử cái này:

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)

đầu ra ggplot


2
(+1) Bạn cũng có thể thêm vjust = -0.5vào sau position()câu lệnh để các giá trị được đặt ngay phía trên các thanh.
smillig

2
Rất cảm ơn, nhân tiện, mã đề xuất cài đặt ymax, do đó aes(x=Types, y=Number, fill=sample, ymax = 16000), sẽ tạo ra vùng phía trên rộng hơn cho trục y, để 15815 sẽ được hiển thị tốt hơn.
Puriney

Tôi gặp lỗi này: Lỗi: stat_count () không được sử dụng với ay thẩm mỹ.
userJT

3
câu trả lời này có cú pháp mới hơn stackoverflow.com/questions/33079500/…
userJT Ngày

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

4

Để thêm vào câu trả lời của rcs, nếu bạn muốn sử dụng position_dodge () với geom_bar () khi x là ngày POSIX.ct, bạn phải nhân chiều rộng với 86400, ví dụ:

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)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.