Я хотел бы создать участок с крупными и второстепенными клещами, а также основные и мелкие линии сетки. Я хотел бы, чтобы линии сетки были равноотстоящими, но с приведенным ниже кодом линии сетки не равны друг другу. Как я могу это исправить?Эквистрочные линии сетки в графике matplotlib
mnt = MonthLocator(range(1, 13), bymonthday=1, interval=2)
mnt_fmt = DateFormatter("%b '%y")
ax.xaxis.set_major_locator(mnt)
ax.xaxis.set_major_formatter(mnt_fmt)
ax.xaxis.set_minor_locator(MaxNLocator(20))
ax.yaxis.set_major_locator(MaxNLocator(5))
ax.yaxis.set_minor_locator(MaxNLocator(20))
# Create nice-looking grid for ease of visualization
ax.grid(which='minor', alpha=0.2)
ax.grid(which='major', alpha=0.5)
Вы спрашиваете, почему основной шаг по типу отличается от оси x по отношению к оси y? Если это так, это потому, что вы размещаете каждый месяц (30 единиц, из-за того, что mpl обрабатывает даты) по оси x, но каждые 20 единиц по оси y. Однако, если вы спрашиваете, почему 20 единиц по оси Y имеют другой физический размер, чем 20 единиц по оси X, это связано с тем, что соотношение сторон графика не задано. Используйте 'ax.set (aspect = 1)' или 'ax.axis ('equal')', чтобы установить его в 1, если вам нужны идеальные квадраты для сетки. –
благодарит @JoeKington, добавил фотографию того, что я вижу. Малые тики по оси x не являются равномерными крупными клещами. например между майом и июлем 2014 года, расстояние между основным тиком за май 2014 года и незначительным тиком отличается от расстояния между основным тиком за июль 2014 года, а второстепенный тик предшествует ему – user308827
также @JoeKington, не будет устанавливать «ax.axis ('equal') 'to 1, а не сделать сюжет квадратным? Некоторые из моих графиков прямоугольны. – user308827