Я ищу что-то вроде AutoMinorLocator
для логарифмической шкалы.
Я знаю, что второстепенные тики по умолчанию включены, однако вызов метода .hist()
удаляет их:
>>> ax.get_xticks(minor=True)
array([2.e-02, 3.e-02, 4.e-02, 5.e-02, 6.e-02, 7.e-02, 8.e-02, 9.e-02,
2.e-01, 3.e-01, 4.e-01, 5.e-01, 6.e-01, 7.e-01, 8.e-01, 9.e-01,
2.e+00, 3.e+00, 4.e+00, 5.e+00, 6.e+00, 7.e+00, 8.e+00, 9.e+00,
2.e+01, 3.e+01, 4.e+01, 5.e+01, 6.e+01, 7.e+01, 8.e+01, 9.e+01,
2.e+02, 3.e+02, 4.e+02, 5.e+02, 6.e+02, 7.e+02, 8.e+02, 9.e+02,
2.e+03, 3.e+03, 4.e+03, 5.e+03, 6.e+03, 7.e+03, 8.e+03, 9.e+03])
>>> ax.hist([], bins=[1e-7, 1e-3])
(array([0.]), array([1.e-07, 1.e-03]), <a list of 1 Patch objects>)
>>> ax.get_xticks(minor=True)
array([], dtype=float64)
Следующий код:
major = ax.get_xticks(minor=False)
ax.set_xticks(np.concatenate([np.linspace(0.2, 0.9, 8) * major.min()] +\
[np.linspace(1, 9, 9) * m
for m in major]),
minor=True)
хорошо работает для мелких тиков, но разрушает автоматические ограничения ...