Python - matplotlib модифицирует xticks для сюжета "loglog"
Я строю график в логарифмическом масштабе для каждой оси, но мне не нужны научные обозначения для оси x, поэтому я изменил ее следующим образом:
from matplotlib import pyplot as plt
from matplotlib.ticker import FormatStrFormatter
a = np.array([10.**(-2), 10.**(-3), 5.*10**(-3),10.**(-4), 10.**(-6), 10.**(-7)])
b = np.array([16, 12.5, 14.5, 9.5, 8., 7.5])
axes = plt.subplot(111)
plt.loglog(a,b, 'k.',markersize=10,markerfacecolor='None',label='')
plt.ylim(10**(-6),10**(-1))
plt.xlim(5,30)
plt.subplots_adjust(left=0.15)
plt.legend(loc=2)
axes.xaxis.set_minor_formatter(FormatStrFormatter("%.0f"))
plt.show()
Но, как вы можете видеть на рисунке ниже, среди обозначений на оси х есть 10 в научных обозначениях... Я не знаю, как их подавить, и просто 10
...
1 ответ
Решение
Вы можете использовать ScalarFormatter
от matplotlib.ticker
import matplotlib.pyplot as plt
from matplotlib.ticker import ScalarFormatter
fig = plt.figure()
ax = fig.add_subplot(111)
ax.semilogx(range(100))
ax.set_xscale('log')
ax.set_yscale('log')
ax.xaxis.set_major_formatter(ScalarFormatter())
#ax.yaxis.set_major_formatter(ScalarFormatter()) # for the y axis
fig.show()