Removing ticks in log scale
It appears that
matplotlib at some point changed the default behaviour of log-scale plots to place labelled minor ticks at every power of the base. This means that if you override the standard ticks with
ax.set_xticks, they will likely collide with those minor ticks, which need to be removed with
ax.set_xticks(, minor=True). Most StackOverflow answers that are easily googled pre-date this change, which confused me for a good half hour!