Cómo mantener el tamaño de ggplot con etiquetas largas

Tengo un diagrama que es un diagrama de barras simple del número de cada tipo de evento. Necesito que las etiquetas de la trama estén debajo de la trama, ya que algunos de los eventos tienen nombres muy largos y aplastaron la trama de lado. Traté de mover las etiquetas debajo de la trama, pero ahora se aplasta cuando hay muchos tipos de eventos. ¿Hay alguna manera de tener un tamaño de trama estático (es decir, para el gráfico de barras) para que las leyendas largas no aplastan la trama?

Mi código:

ggplot(counts_df, aes(x = Var2, y = value, fill - Var1)+
    geom_bar(stat = "identity") +
    theme(legend.position = "bottom") +
    theme(legen.direction = "vertical") +
    theme(axis.text.x = element_text(angle = -90)

El resultado:

Creo que esto se debe a que el tamaño de la imagen debe ser estático, por lo que la trama se sacrifica por el eje. Lo mismo sucede cuando pongo una leyenda debajo de la trama.

Respuestas a la pregunta(2)

Su respuesta a la pregunta