Firstly, this question is directly related to Matplotlib semi-log plot: minor tick marks are gone when range is large.
I am trying to get the same result on the y-axis for values in the range of 1E-15 to 1E-4.
I do not have enough reputation to comment in the referenced question yet - sorry for doubling!
Testsetup: I use Jupyter 4.3.0 with matplotlib 2.0.2 and numpy 1.13.1
The following code (from referenced question) does not show minor ticks on x-axis on my Jupyter installations. I need y-axis but should be same procedure.
Thanks for any input pushing me in the right direction.
import matplotlib.pyplot as plt
import matplotlib.ticker
import numpy as np
#Used this to reset any changes to the rc params
#plt.rcParams.update(plt.rcParamsDefault)
x = np.arange(10) # np.arange(9) is working as expected - well documented issue with >10 range for ticker.LocLocator
y = 10.0**x
fig, ax=plt.subplots()
ax.plot(y,x)
ax.set_xscale("log")
locmaj = matplotlib.ticker.LogLocator(base=10.0, subs=(0.1,1.0, ))
ax.xaxis.set_major_locator(locmaj)
locmin = matplotlib.ticker.LogLocator(base=10.0, subs=(0.1,0.2,0.4,0.6,0.8,1,2,4,6,8,10 ))
ax.xaxis.set_minor_locator(locmin)
ax.xaxis.set_minor_formatter(matplotlib.ticker.NullFormatter())
plt.show()
Resulting Plot -