Largura da barra constante em uma matriz de barplot em R

Eu estou tentando fazer uma matriz (1 linha, 3 coluna) de barplots quetodos têm a mesma largura de barra.

Todos os gráficos de três barras têm um número diferente de observações e, portanto, a largura das barras termina diferente para cada parcela (ou seja, a parcela com a maioria das observações tem as barras mais estreitas e a parcela com menos observações tem as barras mais largas). Eu entendo dobarplot {graphics} R documentação que,

"A especificação de um único valor não terá efeito visível, a menos quexlim é especificado"

No entanto, meux labels são strings, então não sei como especificarxlim. Eu não me importo se minhas plotagens são larguras diferentes, mas eu preciso especificar isso de alguma forma?

Aqui estão alguns dados falsos e o código que estou usando ... obrigado por sua ajuda.

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)

questionAnswers(2)

yourAnswerToTheQuestion