Matplotlib — каков наилучший способ провести прямую линию между максимумами и минимумами биржевого графика?

#python #matplotlib

#python #matplotlib

Вопрос:

У меня есть куча данных, которые строят график, подобный черной части следующего изображения (думаю, биржевой график). Давайте предположим, что все эти данные находятся в пределах 1 месяца. Здесь у нас есть 5 высоких бугорков и 5 низких бугорков.

введите описание изображения здесь

Каков наилучший способ распознать эти высокие и низкие выступы черной линии и наложить на них другую диагональную линию (в данном случае зеленую), чтобы она показывала сужение?? Я не прошу ответа в коде, просто если есть быстрый вариант, потому что, когда я просматриваю примеры в matplotlib, я не вижу ничего, что делает это.

Или мне понадобится какая-то другая библиотека или что-то еще для этого???

Комментарии:

1. Как насчет использования add_artist(lines.Line2D()) , если вы хотите просто добавить линии? Добавление линий к цифрам

2. Спасибо, я попробовал это, но проблема в том, что мне нужно сначала просмотреть график, прежде чем добавлять линии, а затем вставить их сверху. В таком случае я бы предпочел использовать обычный редактор изображений. Я искал что-то, что могло бы распознавать максимумы / минимумы без моей помощи, а затем добавлять к ним линию… Мне кажется, что мне может понадобиться машинное обучение или что-то еще. Но большое вам спасибо за предложение.

Ответ №1:

Почему бы не взглянуть на mlpfinance, хотя диагональная линия (зеленая), возможно, потребуется для написания пользовательского графика, аналогичная линия может быть получена при рисовании простой скользящей средней длительностью.

Редактировать:

построение cummax()

введите описание изображения здесь

Комментарии:

1. Спасибо за предложение, но я проверил его, и мне действительно нужно что-то, что показывает диапазон (между 2 прямыми диагональными линиями).

2. если вы используете numpy или pandas, cummax() и cummin() может помочь! (Я просто пытаюсь здесь не пробовать) затем возьмите уникальные хранилища и постройте прямую линию.