Решение, которое дал @raphael, является простым и весьма полезным.
Тем не менее, отображаемые метки тиков будут не значениями, взятыми из исходного распределения, а из индексов массива, возвращенногоnp.linspace(ymin, ymax, N)
.
Чтобы отобразить значения N, равномерно распределенные по отношению к исходным меткам, используйте метод set_yticklabels()
.Вот фрагмент для оси Y с целочисленными метками:
import numpy as np
import matplotlib.pyplot as plt
ax = plt.gca()
ymin, ymax = ax.get_ylim()
custom_ticks = np.linspace(ymin, ymax, N, dtype=int)
ax.set_yticks(custom_ticks)
ax.set_yticklabels(custom_ticks)