Построение свечного графика с индивидуальной раскраской для каждой свечи

Я хотел бы нанести на график некоторые данные свечей. Проблема, с которой я столкнулся, - найти библиотеку, которая позволяет мне указывать цвет каждой свечи для каждой свечи.

Множество библиотек позволяют мне установить 2 цвета для бычьих / медвежьих свечей ... но я действительно хочу указать цвет свечи для каждой строки.

eg:

Дата, открытие, максимум, минимум, закрытие, объем, цвет

Если бы кто-нибудь мог указать мне направление любой библиотеки, которая позволяет мне это делать. Я был бы очень признателен. Я не понимаю, почему это так сложно.

Я проверил plot.ly, matplotlib, bokeh ... все безуспешно (если только я не слепой!)

Я также разместил здесь 9 дней назад, но безуспешно; https://community.plot.ly/t/individual-candlestick-colors/2959


person Whale Pool    schedule 03.01.2017    source источник
comment
Где твой код?   -  person Shubham Namdeo    schedule 03.01.2017


Ответы (1)


Это довольно просто сделать с помощью боке. Модель Боке для глифов очень последовательна: каждое визуальное свойство (включая цвета) можно векторизовать. Если вы хотите, чтобы все ваши vbar глифы (которые вы использовали для рисования подсвечников) имели разные цвета, просто передайте список или массив разных цветов, которые вы хотите.

from math import pi

import pandas as pd

from bokeh.palettes import viridis
from bokeh.plotting import figure, show, output_file
from bokeh.sampledata.stocks import MSFT

df = pd.DataFrame(MSFT)[:50]
df["date"] = pd.to_datetime(df["date"])

# NOTE: list of colors one for each candlestick
df['colors'] = viridis(50) 

w = 12*60*60*1000 # half day in ms

TOOLS = "pan,wheel_zoom,box_zoom,reset,save"

p = figure(x_axis_type="datetime", tools=TOOLS, 
           plot_width=1000, title = "MSFT Candlestick")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3

p.segment(df.date, df.high, df.date, df.low, color="black")
p.vbar(df.date, w, df.open, df.close, fill_color=df.colors, line_color="black")

output_file("candlestick.html", title="candlestick.py example")

show(p)  # open a browser

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

person bigreddot    schedule 03.01.2017
comment
Отлично, это прекрасно, спасибо, я пытался проголосовать за ваш ответ, но кажется, что в его аккаунте еще недостаточно «ценности», чтобы сделать это? - person Whale Pool; 03.01.2017
comment
Что с гэпами на свечном графике? На графиках свечей нет гэпов. - person jim collins; 24.02.2018
comment
Финансы (и, следовательно, составление графиков финансов) не являются моей компетенцией. Вы можете тривиально изменить ширину w в приведенном выше коде на все, что захотите. - person bigreddot; 25.02.2018