`width` und `height` bezeichnen die Zielgröße der Grafik *inklusive* aller Labels. Man kann jedoch mit Hilfe von `scale only axis` einstellen, ob diese Beschränkung für die ganze Grafik oder nur die Achsen gelten soll. Die Anleitung [Anleitung](http://texdoc.net/texmf-dist/doc/latex/pgfplots/pgfplots.pdf#page=237) sagt dazu
> If `scale only axis` is enabled, `width` and `height` apply only to the axis rectangle. Consequently, the resulting figure is larger than `width` and `height` (because of any axis descriptions). However, the axis box has exactly the prescribed target dimensions. If `scale only axis=false` (the default), `pgfplots` will try to produce the desired `width` including labels, titles and ticks.
Für das Beispiel aus der Frage bedeutet dies
\begin{axis}[
scale only axis=true,
width=3.5cm, height=2.5cm,…