Я пытаюсь сделать лог-лог-график, который охватывает многие десятилетия в Matplotlib. Тем не менее, по умолчанию тиковые галочки по умолчанию, которые мне возвращают, далеки от идеала, поскольку они охватывают два десятилетия за раз, только между 4 отметками. Код, я использую следующий:Matplotlib: странные осевые оси в два десятилетия в логарифмическом графике
rc('text', usetex=True)
f,ax=plt.subplots(figsize=(10,8))
plt.xscale('log')
plt.yscale('log')
plt.ylim([1e26,1e29])
plt.xlim([20,1e10])
plt.xlabel(r'x',fontsize=22)
plt.ylabel(r'y',fontsize=22)
plt.tick_params(axis='both', which='major', labelsize=22,length=9,direction='in')
plt.tick_params(axis='both', which='minor', labelsize=22,length=5,direction='in')
ax.yaxis.set_tick_params(right='on',which='both')
ax.xaxis.set_tick_params(top='on',which='both')
plt.savefig('example.pdf',bbox_inches='tight')
изображение возвращается ко мне показано ниже:
Как вы можете видеть, основные х-метки оси идут от 10^3 до 10^5 и т. д. С другой стороны, между основными метками имеется только 4 младших метки оси x. Я хотел бы иметь основные лейблы каждое десятилетие, как и по оси y, со стандартными 8 тиками между каждым десятилетием. Более того, я бы идеально хотел, чтобы маркировка на оси х оставалась такой, какой есть сейчас, чтобы ось не была слишком захламлена. То есть, я хочу, чтобы 10^3, 10^5, 10^7, 10^9 были помечены так, как они есть сейчас. Я просто хочу распространять основные/мелкие тики на все десятилетия между ними.
Заранее спасибо. Кроме того, если это полезно, я использую matplotlib версии 2.0.0. Мне нужно использовать эту версию (вместо старой версии) для дополнительной функциональности, которая доступна только в версии 2.0.0.