I have a matrix which has 4 columns and 4 rows. But I am having a lot of troubles to put the numbers in the graph in an elegant way. Specifically, I want to have the numbers of the each part of the stacked bars to distinguish the percentages.
The matrix is this one, named as tabl.
| 3.89 | 4.97 | 8.56 | 7.17 |
| 35.67 | 42.73 | 51.68 | 50.09 |
| 48.30 | 43.48 | 34.95 | 38.24 |
| 12.14 | 8.82 | 4.81 | 4.50 |
And my current code to plot it is
nombres_comp <- c("Tac. \n Urb",
"Ven. \n Urb",
"Tac. \n Game",
"Ven. \n Game")
bp<-barplot(tabl,
main = NULL,
xlab = "(%)",
ylab = NULL,
axes = TRUE,
horiz = TRUE,
beside = FALSE,
names.arg = nombres_comp,
col = c("#487c82","#487c83",
"#81e0eb", "#b1ecf2")
)
y <- tabl
text(bp+2,y,labels=as.character(y))
However, the output is putting the numbers in a strange place outside of the bars. I want them to be inside each place correctly identified in the barplot().
Also I would appreciate if someone beside solving this, could show me for completeness how to do this on ggplot2.

Created on 2024-03-15 with reprex v2.0.2