You are setting the xlim and ylim first, and then you overwrite them by plotting on-top with plot_compare_evokeds. I suspect that you’ll get the correct output if you move the set_*lim after plot_compare_evokeds.
as @richard says, look at the parameters truncate_xaxis and truncate_yaxis in the plot_compare_evokeds function. That is what causes the axis truncation.
@Evelyne_Fraats btw, the defaults will look much better with a recent version of MNE-Python. I think I changed these settings a short while ago; either the improvements are already included in MNE-Python 1.0, or will be in the very-soon-to-be-released 1.1.