У меня проблемы с пониманием того, как matplotlib.pyplot определяет метки x и y (по умолчанию), размещенные на осях x и y, и, соответственно, как изменить интервалы этих меток и соответственно масштабировать график, Этот последний бит важен, потому что у меня очень странное поведение. В частности, график по умолчанию выглядит следующим образом:
Чтобы быть уверенным, этот график отображает данные правильно. Однако я не хочу, чтобы на оси Y было так много меток и они не были такими точными. Поэтому я добавил в свою программу следующий фрагмент кода:
ax.set_ylim(bottom=y_min, top=y_max)
y_tick_marks = list(np.arange(y_min, y_max, (y_max - y_min)/10))
y_labels = [round(elem, 4) for elem in y_tick_marks]
plt.yticks(y_tick_marks, y_labels)
И я получил следующий график:
Что кажется нелепым, потому что я должен быть в состоянии увидеть некоторые из обоих графиков (я понимаю, что наибольшее значение у не совпадает с предыдущим графиком). Затем я стер предыдущий блок кода и включил следующий (обратите внимание, что они одинаковы, за исключением того, что пропущена одна строка):
y_tick_marks = list(np.arange(y_min, y_max, (y_max - y_min)/10))
y_labels = [round(elem, 4) for elem in y_tick_marks]
plt.yticks(y_tick_marks, y_labels)
Я сделал это, потому что подозревал, что что-то происходит с масштабированием график с учетом разницы между графиком 1 и 2 выше. Я думаю, что я прав, потому что я получил следующий график:
Это очень странно, потому что первый график инсинуировал значения у второго графика будет соответствовать, но на этом третьем графике мы видим, что второй график - это очень маленькая часть. Поэтому я запустил оператор печати:
print(ax.get_ylim())
, который дал следующий вывод:
(-1.1500000000000001, 24.15)
Что происходит в мире? Кажется, что matplotlib допускает масштабирование значений y каким-то образом, но не забудьте связать эти масштабированные значения y с их исходными значениями через метки оси y.
Я понимаю, что я не включил много кода , но я не хотел заставлять кого-либо читать кучу кода, если не было необходимости отвечать на вопрос - чтобы быть уверенным, я напечатал все y-значения и трижды проверил мой ввод в графических методах. Я могу добавить больше кода, если потребуется, но графики говорят сами за себя.
Общее решение было бы неплохо, но я также был бы очень признателен, если бы его можно было представить на низком уровне. Спасибо всем, кто пытается ответить на этот вопрос.