简体   繁体   中英

ggplot2 geom_bar plot Labels fall outside plot

Question

I'm trying to locate labels of a bar plot using ggplot2 over the bars. The problem I get is that the labels fall "outside" the plot.

Load packages

library(ggplot2)
library(plyr)
library(reshape2)

Barplot

df_1 <- data.frame(PROV = c("BUENOS AIRES", "BUENOS AIRES", "BUENOS AIRES"),
                   variable = c("Var1", "Var2", "Var3"), 
                   value = c(15, 20, 5))

col_bar <- c("#00BA38", "#00BFC4", "#D7BA00")

z = ggplot(df_1, aes(x = factor(variable), y = value)) +
   geom_bar(data=df_1, stat = "identity", fill = col_bar) +
   geom_text(aes(label=value), colour= col_bar, size = 7, vjust = -1)

z = z + theme(panel.background = element_blank())
z = z + theme(panel.border = element_blank())
z = z + theme(panel.grid.major = element_blank())
z = z + theme(panel.grid.minor = element_blank())
z = z + theme(panel.grid.major = element_blank())
z = z + theme(panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank())
z = z + theme(plot.background = element_blank())
z = z + theme(plot.background = element_blank())
z = z + theme(axis.text.y = element_blank())
z = z + theme(axis.ticks.y = element_blank())

print(z)

This seems to be a good solution for the previous example. I'll answer the question to leave the reference.

z = ggplot(df_1, aes(x = factor(variable), y = value)) +
   geom_bar(data=df_1, stat = "identity", fill = col_bar) +
   geom_text(aes(label=value), colour= col_bar, size = 7, vjust = -1)

z = z + theme(panel.background = element_blank())
z = z + theme(panel.border = element_blank())
z = z + theme(panel.grid.major = element_blank())
z = z + theme(panel.grid.minor = element_blank())
z = z + theme(panel.grid.major = element_blank())
z = z + theme(panel.grid.major.y = element_blank(), panel.grid.minor.y = element_blank())
z = z + theme(plot.background = element_blank())
z = z + theme(plot.background = element_blank())
z = z + theme(axis.text.y = element_blank())
z = z + theme(axis.ticks.y = element_blank())
z = z + coord_cartesian(ylim=c(0,23)) 
print(z)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM