Рассмотрим следующий пример:
import matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_xlim([2e-2, 2e-1])
ax.set_ylim([2e+1, 2e+3])
ax.plot([0.02, 0.1, 0.2], [20, 1000, 2000])
ax.get_xaxis().set_major_formatter(matplotlib.ticker.ScalarFormatter())
ax.get_xaxis().set_minor_formatter(matplotlib.ticker.ScalarFormatter())
plt.show()
, что дает

Теперь я хочу выборочно удалить / изменить тиковые метки с оси x, чтобы сохранить только ['0.02', '0.10', '0.20']
, сохраняя тиковые метки. Как мне это сделать?
Редактировать
Стратегия, которой я изначально хотел следовать, похоже, страдает ошибкой. Я считал это
fig.canvas.draw()
labels = [item.get_text() for item in ax.get_xticklabels()]
# ...
ax.set_xticklabels(labels)
Но на моем Mac он печатает только
>>> print(labels)
['', '', '', '', '']