Ancho de barra constante en una matriz de barras en R

Estoy tratando de hacer una (1 fila, 3 columnas) matriz de gráficos de barras quetodos tienen el mismo ancho de barra.

Las tres gráficas de barras tienen un número diferente de observaciones y, por lo tanto, el ancho de las barras termina siendo diferente para cada gráfica (es decir, la gráfica con la mayor cantidad de observaciones tiene las barras más estrechas y la gráfica con la menor cantidad de observaciones tiene las barras más amplias). Entiendo de labarplot {graphics} R documentación que,

"Especificar un valor único no tendrá ningún efecto visible a menos quexlim está especificado"

Sin embargo, mix labels son cadenas, así que no estoy seguro de cómo especificarxlim. No me importa si mis parcelas tienen anchos diferentes, pero ¿debo especificar esto de alguna manera?

Aquí hay algunos datos falsos y el código que estoy usando ... gracias por su ayuda.

height4plot1 <- c(1,6,9,2,3,10,7,15)
names4plot1 <- c("P1","P2","P3","P4","P5","P6","P7","P8")

height4plot2 <- c(5,4,10,2)
names4plot2 <- c("M1","M2","M3","M4")

height4plot3 <- c(4,12)
names4plot3 <0 c("U1","U2")

par(mfrow=c(1,3),
    mar=c(10,5,2,1),
    cex.axis=0.7,
    mgp=c(3,0.5,0))
barplot(height4plot1,
    names.arg=names4plot1,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylab="YLAB",
    ylim=ylim,
    plot=TRUE,
    main="PLOT1",
    width=1)
barplot(height4plot2,
    names.arg=names4plot2,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylim=ylim,
    plot=TRUE,
    main="PLOT2",
    width=1)
barplot(height4plot3,
    names.arg=names4plot3,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylim=ylim,
    plot=TRUE,
    main="PLOT3",
    width=1)

Respuestas a la pregunta(2)

Su respuesta a la pregunta