使用自定义的每个蜡烛图单独着色来绘制蜡烛图

3
我想在图表上绘制一些蜡烛图数据。 我遇到的问题是找到一个可以让我指定每个蜡烛颜色的库。
很多库允许我设置两种颜色,用于看涨/看跌的蜡烛图.. 但我实际上想要指定每行的蜡烛颜色。
例如:
日期,开盘价,最高价,最低价,收盘价,成交量,颜色
如果有人能指导我使用任何允许我这样做的库,我将不胜感激。我不明白为什么这么难。
我已经检查了plot.ly,matplotlib,bokeh.. 都没有找到合适的(除非我眼瞎!)
我还在这里发布过,但九天过去了也没有得到答复;https://community.plot.ly/t/individual-candlestick-colors/2959

你的代码在哪里? - Shubham Namdeo
1个回答

8
这在Bokeh中非常容易实现。Bokeh的glyphe模型非常一致:每个视觉属性(包括颜色)都可以进行向量化处理。如果您希望所有的vbar glyphs(用于绘制K线图)具有不同的颜色,只需传递一个您想要的不同颜色的列表或数组即可。
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

enter image description here


太棒了,这非常完美,谢谢。我试图给你的答案点赞,但似乎这个账户还没有足够的“价值”来执行此操作? - Whale Pool
蜡烛图中的间隙是怎么回事?蜡烛图不应该有间隙。 - jim collins
金融(以及金融图表)不是我的专长。您可以轻松地在上面的代码中更改宽度“w”为任何您喜欢的值。 - bigreddot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接