Еще один очень грязный способ сделать это - вычислить количество символов в самой длинной метке, которую вы используете, а затем умножить на коэффициент выдумки, чтобы получить длину метки в пикселях. Для этого я использовал 4.8px, так как это казалось правильным ...
Затем я добавил это значение к произвольному значению для размера области бара (250 в моем случае) и выровнял диаграммы по правому краю
Это дает довольно хороших результатов, но есть некоторые движения в зависимости от символов, содержащихся в метках (из-за кернинга шрифта).
См. Ниже код VBA, который я использовал для создания значения ширины метки (поскольку диаграммы генерировались с помощью Access):
Function labelSizePx()
Dim label_array
label_array(0) = "foo"
label_array(1) = "goo"
label_array(2) = "bar"
label_array(3) = "foogoobar"
Dim lng_str
lng_str = ""
For i = 0 To UBound(label_array)
If Len(label_array(i)) > Len(lng_str) Then lng_str = label_array(i)
Next i
Dim char_px
char_px = 4.8
labelSizePx = CInt(Len(lng_str) * char_px)
' returns 43px in this case
End Function
Это может быть улучшено путем вывода самой длинной метки в элемент (или аналогичный) и вычисления фактической ширины строки, поскольку вышеприведенный метод пытается оценить кернинг шрифта с использованием коэффициента выдумки.