matplotlib: параметр «ширина» свечи2_ochl автоматически изменяет размер

Я разрабатываю финансовый график с использованием свечей. у меня две разные проблемы с шириной свечей: — они слишком большие — они слишком маленькие

в зависимости от количества данных в интервале, который у меня есть.

я прилагаю два примера: введите здесь описание изображения введите здесь описание изображения

я знаю, что могу управлять этим с помощью параметра width:

candlestick_ohlc(ax1, data, width=candel_width, colorup='g', colordown='r')

но я ищу, есть ли параметр, который автоматически обрабатывает случаи.

мой код: fig, ax1 = pyplot.subplots(figsize=(10, 5))

for i in ohlc:
    i['time'] = date2num(datetime.datetime.fromtimestamp(i['time']))
data = []
for i in ohlc:
    sub_lst = i['time'], i['open'], i['high'], i['low'], i['close']
    data.append(sub_lst)
candlestick_ohlc(ax1, data, width=candel_width, colorup='g', colordown='r')
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%d-%m %H:%M'))
ax1.xaxis.set_major_locator(ticker.MaxNLocator(10))
ax1.grid(True)

pyplot.xlabel('Date')
pyplot.ylabel('Price')
pyplot.title(title)
pyplot.tight_layout()
fig.autofmt_xdate()
ax1.autoscale_view()

pyplot.show()

person 91DarioDev    schedule 25.01.2018    source источник
comment
Ширина свечей, вероятно, должна быть чем-то вроде разницы между двумя последовательными значениями данных, то есть width=i['time'][1] -i['time'][0] при условии, что даты каким-то образом расположены на одинаковом расстоянии друг от друга.   -  person ImportanceOfBeingErnest    schedule 25.01.2018
comment
спасибо! @ImportanceOfBeingErnest   -  person 91DarioDev    schedule 25.01.2018
comment
@ImportanceOfBeingErnest на самом деле это не сработало, потому что это время - эпоха, а второе минус первое равно 600 и 600, поскольку параметр ширины на самом деле слишком велик.   -  person 91DarioDev    schedule 25.01.2018
comment
Вам нужно сделать это с данными после date2num преобразования.   -  person ImportanceOfBeingErnest    schedule 25.01.2018
comment
@ImportanceOfBeingErnest большое спасибо, теперь это работает. просто совет для тех, кто будет читать пост. результат твоего предложения - все свечи рядом без малейшего места. поэтому я использовал width = (2/3) * (ohlc[1]['time'] - ohlc[0]['time']), чтобы оставить немного места между свечами, спасибо   -  person 91DarioDev    schedule 25.01.2018
comment
Может быть, вы сами напишете ответ, чтобы этот вопрос не остался без ответа.   -  person ImportanceOfBeingErnest    schedule 25.01.2018