In the bar chart I am creating the first and last rows are consistently being cut in half (even if I add additional bars). This also causes the values above the bar
If the problem is with the first bar only, you can use negative values for the axis minimum:
xAxis.setAxisMinimum(-0.5f);
Like in the answer to this question here: