rm(list=ls())
gc()
##          used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 503760 27.0    1117192 59.7   644242 34.5
## Vcells 887758  6.8    8388608 64.0  1635170 12.5
ls()
## character(0)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.2.3
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
bd <- read_excel("C:/Users/Julietha Zorro M/Downloads/Libro1.xlsx")
View(bd)

El gráfico que ustedes presentan es el siguiente

tb9=table(bd$P1879)

barplot(tb9, col = c("sienna4"))

# +geom_bar(title("Razón principal por la que trabaja  en forma independiente") +title(sub ="1=No encontró trabajo como asalariado 2=Por despido  3=Más independencia  
#                                                                                 4=Horario de trabajo más flexible 5=Se considera muy joven o muy viejo  6=Empezó su empresa o negocio  
#                                                                                 7=Trabaja en un negocio familiar  8=Mayor nivel de ingreso  
#                                                                                 9=Por tradición familiar  10=Considera que no tiene los estudios necesarios 11=Otro"))

Pueden ajustar los valores que toma la variable para que el gráfico quede ajustado así:

bd <- bd %>%
  mutate(P1879a = case_when(
    P1879 == 1 ~ "No encontró trabajo como asalariado",
    P1879 == 2 ~ "Por despido",
    P1879 == 3 ~ "Más independencia",
    P1879 == 4 ~ "Horario de trabajo más flexible",
    P1879 == 5 ~ "Se considera muy joven o muy viejo",
    P1879 == 6 ~ "Empezó su empresa o negocio",
    P1879 == 7 ~ "Trabaja en un negocio familiar",
    P1879 == 8 ~ "Mayor nivel de ingreso",
    P1879 == 9 ~ "Por tradición familiar",
    P1879 == 10 ~ "Considera que no tiene los estudios necesarios",
    P1879 == 11 ~ "Otro",
    TRUE ~ as.character(P1879)
  ))

table(bd$P1879a,bd$P1879)
##                                                 
##                                                    1   2   3   4   5   6   7
##   Considera que no tiene los estudios necesarios   0   0   0   0   0   0   0
##   Empezó su empresa o negocio                      0   0   0   0   0  20   0
##   Horario de trabajo más flexible                  0   0   0  38   0   0   0
##   Más independencia                                0   0  97   0   0   0   0
##   Mayor nivel de ingreso                           0   0   0   0   0   0   0
##   No encontró trabajo como asalariado            133   0   0   0   0   0   0
##   Otro                                             0   0   0   0   0   0   0
##   Por despido                                      0   2   0   0   0   0   0
##   Por tradición familiar                           0   0   0   0   0   0   0
##   Se considera muy joven o muy viejo               0   0   0   0  31   0   0
##   Trabaja en un negocio familiar                   0   0   0   0   0   0   2
##                                                 
##                                                    8   9  10  11
##   Considera que no tiene los estudios necesarios   0   0  13   0
##   Empezó su empresa o negocio                      0   0   0   0
##   Horario de trabajo más flexible                  0   0   0   0
##   Más independencia                                0   0   0   0
##   Mayor nivel de ingreso                           8   0   0   0
##   No encontró trabajo como asalariado              0   0   0   0
##   Otro                                             0   0   0  10
##   Por despido                                      0   0   0   0
##   Por tradición familiar                           0   6   0   0
##   Se considera muy joven o muy viejo               0   0   0   0
##   Trabaja en un negocio familiar                   0   0   0   0
tabla <- bd %>%
  select(P1879a)%>%
  group_by(P1879a)%>%
  summarise(Total=n())%>%
  arrange(desc(Total))%>%
  filter(!(is.na(P1879a)))

# Convertir la variable Localidad_aju en un factor con el orden deseado
tabla$P1879a <- factor(tabla$P1879a, levels = tabla$P1879a)

# Crear el gráfico de barras
plot1 <- ggplot(tabla, aes(x = P1879a, y = Total)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  labs(title = "Nombre",
       subtitle = "Año xxx",
       caption = "Fuente: GEIH-?¿",
       x = "Razon",
       y = "Número personas")+
  geom_text(aes(label = Total), vjust = -0.5, color = "black", size = 2) +  # Agrega etiquetas de texto
  theme_light()+
  theme(axis.text.x = element_text(angle = 45, hjust = 1,size=5.5))

plot1