在Justpy中添加Highcharts Stock选项:hollowcandlestick与Stock Tools
在Justpy中配置Highcharts Stock系列及工具的解决方案
一、切换为hollowcandlestick/hlc系列(解决页面空白问题)
页面空白的核心原因是hollowcandlestick、hlc属于Highcharts Stock专属系列类型,Justpy默认加载的基础Highcharts模块不包含这些,必须显式指定加载Stock模块。
实现代码示例
import justpy as jp import pandas as pd # 生成模拟K线数据 df = pd.DataFrame({ 'open': [150, 152, 151, 155, 154], 'high': [153, 154, 153, 157, 156], 'low': [148, 150, 149, 152, 151], 'close': [152, 151, 155, 156, 153], 'date': pd.date_range('2024-05-01', periods=5) }) def hollow_candlestick_demo(): wp = jp.WebPage() # 关键:初始化HighCharts时指定加载stock模块 chart = jp.HighCharts(a=wp, modules=['stock']) # 基础图表配置 chart.options.title.text = 'Hollow Candlestick Demo' chart.options.xAxis.type = 'datetime' chart.options.yAxis.title.text = 'Stock Price' # 配置hollowcandlestick系列(替换candlestick即可) chart.options.series = [{ 'type': 'hollowcandlestick', 'name': 'Daily Price', # 转换数据格式:[时间戳(毫秒), 开盘, 最高, 最低, 收盘] 'data': [[d.timestamp()*1000, o, h, l, c] for d, o, h, l, c in zip(df.date, df.open, df.high, df.low, df.close)] }] return wp jp.justpy(hollow_candlestick_demo)
注意事项
- 必须通过
modules=['stock']参数加载Stock模块,否则浏览器会因找不到系列类型抛出错误,导致页面空白。 - hlc系列的配置逻辑完全一致,只需将
type改为'hlc'即可。
二、添加Stock Tools功能
Stock Tools同样依赖Highcharts Stock模块,在加载模块的基础上,只需在图表配置中开启stockTools即可。
实现代码示例(基于上面的demo扩展)
在hollow_candlestick_demo函数中,添加Stock Tools的配置:
# 在基础图表配置后添加 chart.options.stockTools = { 'gui': { 'enabled': True, # 可选:自定义工具按钮,不设置则使用默认全套工具 'buttons': { 'indicators': {'menuItems': ['indicators', 'separator', 'volume']}, 'zoom': {'menuItems': ['zoomX', 'resetZoom']} } } }
说明
- 开启
stockTools.gui.enabled = True后,图表顶部会出现默认的Stock Tools工具栏,包含缩放、指标绘制、时间范围选择等功能。 - 若需要自定义工具按钮,可通过
buttons参数筛选或添加所需功能,具体可参考Highcharts官方的Stock Tools配置项。
三、Justpy使用的Highcharts版本查询
Justpy内置的Highcharts版本可以直接通过代码打印查看:
import justpy as jp print(jp.HighCharts.highcharts_version)
当前(2024年)Justpy默认使用的Highcharts版本为v10.x及以上,远高于Stock Tools要求的v7版本,完全满足功能需求。
内容的提问来源于stack exchange,提问作者seniorgeek
相关产品推荐
相关产品推荐

