Open willzhqiang opened 3 years ago
lowest 和 highest 确实标反了,新的 commit 已经调整过来了,感谢反馈。
关于颜色的自定义,我也实现了下,但感觉 pyecharts 画出来的还是一样的配色,不知道是我 API理解的问题,还是 pyecharts 的问题。考虑到 pyecharts 的频繁 breaking change 和很多生成 echarts 图的 bug,我已经锁死了 pyecharts 的版本,并且不再投入更多精力去实现 pyecharts 可视化了。
用 pyecharts 画 k 线图的代码在 https://github.com/refraction-ray/xalpha/blob/master/xalpha/indicator.py#L526-L658, 如果你有兴趣更深入研究怎么能调整颜色的话,非常欢迎贡献。
我最近尝试了一下,似乎我的可以,不过MR这种我比较陌生,我可以说下我的代码。 首先我安装的是最新的pyecharts版本,不是你这个里面的1.7.1,我安装的是1.9.0
## 这个地方把你的uclolor和dcolor的颜色调换了
def plot_kline(df, rendered=True, ucolor="#14b143", dcolor="#ef232a", col=""):
## 这个地方改成了y_axis,新版本的API换成了这个。
y_axis=list(zip(df["open"], df["close"], df["low"], df["high"])),
就是升级了版本,改动了这两个地方,然后就可以。
我又确认了一下,pyecharts 1.7.1 这个地方最新代码也是没问题的。就像你说的,只需要把两种想要的颜色传入 ucolor 和 dcolor 就好了
不过还有个问题,看来是百度echarts本身不支持,就是我希望上涨是阳烛,也就是里面是空心,而不是实心;网上找了一圈,都没有找到解决方案,不知道作者可有办法?
刚看了下 echarts 是支持的,每一个柱子可以分成内部颜色和边界颜色分别定义,最新 commit 更新了代码。
使用如下
xa.get_daily("HK00700").v_kline(ucolor="#ffffff", ucolorborder="#ef232a")
上涨红色空心,下降绿色实心
xa.get_daily("HK00700").v_kline(dcolor="#ef232a", ucolorborder="#14b143", ucolor="#ffffff")
上涨绿色空心,下降红色实心。
要点就是每个柱子及其边界的颜色,可以分别用 ucolor dcolor ucolorborder 和 dcolorborder 分别自定义
感谢更新,我看了下,确实生效了,有点小遗憾就是还是填充的白色,在黑色背景下面看着就不够完美,请看下图。但我想问空心这个问题其实是另外一种蜡烛图的表达。因为如果用空心和实心就能体现了收盘价和开盘价的关系了,就不需要颜色了。这个时候的颜色其实是表达的当天的收盘价和昨天收盘价的关系。如果是绿色,那么代表今天收盘价比昨天高,否则就是低。这个具体可以参考下面两篇文章。 https://stockcharts.com/articles/mailbag/2012/11/what-the-deal-with-these-colored-filled-and-hollow-candles.html https://thetradingbible.com/how-to-read-hollow-candlesticks 我看了下,如果要改成这样,似乎要修改下面这段的代码了。不知道作者能否指教怎么修改呢?这个时候的红绿色是比较当天的close和前一天的close之间的关系;空心实心要看当天的close和当天的open之间的关系。
itemstyle_opts=opts.ItemStyleOpts(
color=JsCode(
"""
function(params) {{
var colorList;
if (barData[params.dataIndex]>0) {{
colorList = '{ucolor}';
}} else {{
colorList = '{dcolor}';
}}
return colorList;
}}
""".format(
ucolor=ucolorvolume, dcolor=dcolorvolume
)
) # escape {} when using forma
其实透明很简单,颜色代码 “12345600” 就是透明的,前六位数字任意,后两位是00,把相应的 ucolor 设成这个就好了,不需要修改程序本身的代码。当然相应的也可以设定 ucolorvolume 对应的颜色代码,防止成交量的柱形图也透明了。 关于你提到的比较两天收盘价这个信息并表达出来,可能 echarts 确实不支持。你贴出的代码,是用来画下面柱形图的颜色的。也许 k 线图那边也可以用类似的复杂 js 函数的方案,实现这个功能,但我不是很确定。
非常感谢指点,现在颜色这块看起来舒服多了。
显示的lowest和highest似乎反了,见下图
这个是从
https://nbviewer.jupyter.org/github/refraction-ray/xalpha/blob/master/doc/samples/newparadigm.ipynb
这里发现的。
另外,v_kline()能不能显示绿涨红跌呢?毕竟英美行情都是这样设置的。