This is a minor bug, acknowledged by WRI and present as of v10.4. The problem is that for Plot3D the required syntax for AxesLabel
is a list with three entries instead of two. When given a two-member list as an argument, though, Plot3D silently interprets that as the AxesLabel→Automatic
setting, and it labels the axes with the internal variables of the plot, without even issuing a warning about the wrong syntax.
This behaviour is rather unfortunate and rather difficult to catch (particularly if, say, the specified label were something like
AxesLabel -> {Style["x", FontSize->16], Style["y", FontSize->16]}
which will look like the formatting is not taking effect), but hopefully this waymarker will help some other lost soul in the future.
For the case at hand, though, entering
Plot3D[
x^2 - y^2
, {x, -1, 1}, {y, -1, 1}
, AxesLabel -> {"a", "b", ""}
]
with an empty ""
in the third position, will solve the problem.