Странная случайная ширина в функции matplotlib Подсвечник_охл c - PullRequest
1 голос
/ 18 января 2020

Я использую candlestick_ohlc из matplotlib для рисования коротких свечных паттернов, у меня есть настройки для width как 0.01. и всегда рисует 6 свечей.

В большинстве случаев столбцы выглядят так, как ожидалось, но 1 из 5 каждого изображения (более или менее) отрисовывается с большей шириной, которая разбивает график.

graph exemple

Вот пример того, как я использую свою функцию:

candlestick_ohlc(ax1, candles, width=0.01,colorup='green', colordown='red')

и пример обрабатываемых данных:

[[7.37151000e+05 1.30622000e+00 1.30658000e+00 1.30597000e+00  1.30610000e+00]
 [7.37151010e+05 1.30609000e+00 1.30619000e+00 1.30500000e+00  1.30595000e+00]
 [7.37151021e+05 1.30594000e+00 1.30621000e+00 1.30575000e+00  1.30602000e+00]
 [7.37151031e+05 1.30603000e+00 1.30644000e+00 1.30603000e+00  1.30632000e+00]
 [7.37151042e+05 1.30633000e+00 1.30648000e+00 1.30622000e+00  1.30648000e+00]
 [7.37151052e+05 1.30644000e+00 1.30661000e+00 1.30551000e+00  1.30553000e+00]]

[[7.37151010e+05 1.30609000e+00 1.30619000e+00 1.30500000e+00  1.30595000e+00]
 [7.37151021e+05 1.30594000e+00 1.30621000e+00 1.30575000e+00  1.30602000e+00]
 [7.37151031e+05 1.30603000e+00 1.30644000e+00 1.30603000e+00  1.30632000e+00]
 [7.37151042e+05 1.30633000e+00 1.30648000e+00 1.30622000e+00  1.30648000e+00]
 [7.37151052e+05 1.30644000e+00 1.30661000e+00 1.30551000e+00  1.30553000e+00]
 [7.37151062e+05 1.30553000e+00 1.30590000e+00 1.30529000e+00  1.30573000e+00]]

[[7.37151060e+05 1.30561000e+00 1.30561000e+00 1.30549000e+00  1.30551000e+00]
 [7.37151060e+05 1.30550000e+00 1.30568000e+00 1.30550000e+00  1.30568000e+00]
 [7.37151061e+05 1.30565000e+00 1.30580000e+00 1.30562000e+00  1.30580000e+00]
 [7.37151062e+05 1.30580000e+00 1.30583000e+00 1.30578000e+00  1.30578000e+00]
 [7.37151062e+05 1.30579000e+00 1.30590000e+00 1.30566000e+00  1.30573000e+00]
 [7.37151063e+05 1.30573000e+00 1.30574000e+00 1.30550000e+00  1.30561000e+00]]

1 Ответ

1 голос
/ 21 января 2020

Как сказал ImportanceOfBeingErnest: «В тех случаях, когда это не сработает, вам необходимо дополнительно уменьшить ширину. Точнее, ширина никогда не должна превышать разницу между двумя последовательными точками данных x».

Тем не менее, есть новая версия matplotlib finance, которая обрабатывает это автоматически для вас . Вы можете найти новую версию вместе с документацией здесь:

https://pypi.org/project/mplfinance/

Установить с помощью: pip install --upgrade mplfinance

ПРИМЕЧАНИЕ. Пакет имя больше не имеет da sh или подчеркивания: теперь это mplfinance (не mpl-finance и не mpl_finance)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...