Я строю диаграмму Matplotlib с 10000 точками данных оси x.Чтобы избежать наложения меток оси X, я использовал Major MultipleLocator из 40 и вспомогательный MultipleLocator из 10. Этот код работает для 1000 точек данных.
from matplotlib import pyplot as plt
import numpy as np
import matplotlib.ticker as mticker
##generating 1000 data points
years = [i for i in range(1,10000)]
data = np.random.rand(len(years))
fig, ax = plt.subplots(figsize = (18,6))
ind = np.arange(len(data))
bars1 = ax.bar(ind, data,
label='Data')
ax.set_title("Data vs Year")
#Format Y Axis
ax.set_ylabel("Data")
ax.set_ylim((0,1))
#Format X Axis
ax.set_xticks(range(0,len(ind)))
ax.set_xticklabels(years)
ax.set_xlabel("Years")
ax.xaxis.set_major_locator(mticker.MultipleLocator(40))
ax.xaxis.set_major_formatter(mticker.FormatStrFormatter('%d'))
ax.xaxis.set_minor_locator(mticker.MultipleLocator(10))
fig.autofmt_xdate()
ax.xaxis_date()
plt.tight_layout()
plt.show()
В приведенной выше диаграмме выдается следующая ошибка.
RuntimeError: Locator attempting to generate 1102 ticks from -510.0 to 10500.0: exceeds Locator.MAXTICKS
Подскажите, пожалуйста, ошибку в этой диаграмме?