matplotlib log axis: display powers of 10 only

matplotlib, plot, python

Solution

`LogFormatterExponent(base=10.0, labelOnlyBase=True)` works as expected.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker

x = 10**np.linspace(8.5,12.6)
y = np.sin(x)

fig,ax = plt.subplots()
ax.scatter(x,y)
ax.set_xscale('log')
ax.set_xlabel("Quantity [$10^{x}]$")

logfmt = matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=True)
ax.xaxis.set_major_formatter(logfmt)

plt.show()

Problem

I have a log-log plot with range of x-axis from 10^9 to 10^12. (This is my first time posting so I am unable to post an image of my plot) I would like to change the x and y axes so that only the powers of 10 are displayed. Something like 9, 10, 11, 12 on the x-axis. I used `matplotlib.ticker.LogFormatterExponent(base=10.0, labelOnlyBase=True)` but it does not quite do the job. Any suggestions?

Original source