Znalazłem to, jak umieścić etykiety nad geom_bar w R za pomocą ggplot2 , ale po prostu umieścił etykiety (liczby) na tylko jednym pasku.
Oto, powiedzmy, dwa słupki dla każdej osi X, jak zrobić to samo?
Moje dane i kod wyglądają tak:
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))
Następnie otrzymamy:
Wydaje się, że teksty liczbowe są również pozycjonowane we wzorcu „unik”. Przeszukałem podręcznik geom_text, aby znaleźć informacje, ale nie mogę go uruchomić .
Propozycje?
vjust = -0.5
poposition()
wyrażeniu, aby wartości były umieszczone tuż nad słupkami.ymax
, więcaes(x=Types, y=Number, fill=sample, ymax = 16000)
wygeneruje szerszy górny obszar dla osi Y, dzięki czemu 15815 będzie lepiej widoczne.geom_text(..., angle=-90)
Aby dodać do odpowiedzi rcs, jeśli chcesz użyć position_dodge () z geom_bar (), gdy x jest datą POSIX.ct, musisz pomnożyć szerokość przez 86400, np.
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)
źródło