Кто-нибудь знает, как изменить шкалу Matplotlib по оси Y, чтобы иметь разный интервал и разные шаги между yticks.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
x_data = np.arange(0, 1000, 10)
y_data = np.random.rand(100)
fig, ax = plt.subplots(figsize=(7,2))
plt.plot(x_data,y_data, color='black', linewidth=1)
plt.scatter(x_data,y_data, marker='o', facecolors='none', edgecolors='black', linewidth=1, s=20)
rect = patches.Rectangle((450,0), 100, 14,facecolor='blue', zorder=3)
ax.add_patch(rect)
ax.set_ylim(0,20)
ax.minorticks_on()
ax.yaxis.grid(True, linestyle='-', which='major', linewidth='0.75', alpha=.9)
ax.yaxis.grid(True, linestyle='--', which='minor', linewidth='0.75', alpha=0.6)
plt.show()
Это создает фигуру как таковую:
Однако я пытаюсь изменить ось Y, чтобы она была примерно такой (ниже), чтобы я мог лучше визуализировать распределение линейного графика, но все еще могу продемонстрировать высота прямоугольника.
Я пытаюсь, чтобы интервал первого тика (от 0 до 0,1) совпадал с расстоянием следующего тика (от 0,1 до 1), больший зазор от 1 до 5, а затем уменьшенный интервал для тиков после 5.