你能提供一个用Python编写的包含多条折线图的highcharts_stock示例吗?

-2 投票
1 回答
46 浏览
提问于 2025-04-14 17:02

你能给我一个用Python写的例子吗?这个例子要用最新版本的highchart_stock 1.5.0(从pypi安装的),并且要包含两个系列,显示两只股票的收盘价,用折线图展示出来。

我试过查文档、看了很多例子,还用过highchart的聊天助手。但因为一些过时的例子,我只能部分成功,这让我很难把正确的解决方案拼凑起来。

1 个回答

2

完全公开:我是Highcharts for Python的主要作者

很抱歉你在使用Highcharts Stock for Python时遇到了问题。这里有一个教程,你可能会觉得有帮助,链接在这里。请注意,这个教程是为Highcharts Core写的,但同样的代码在Highcharts Stock中也能用(只需把导入语句改为从highcharts_stock导入,而不是highcharts_core)。

此外,你可以在我们的示例库中找到许多Highcharts Stock可视化的工作示例,链接在这里:https://github.com/highcharts-for-python/highcharts-for-python-demos

需要注意的是,Binder最近有一些性能问题,所以你可能想把这个库克隆到本地,查看Jupyter Notebooks,看看可视化效果如何。

话说回来,下面你会看到一个来自示例库的修改过的例子,展示了Highcharts Stock中两个线性系列的图表,显示了一些虚构的收盘价数据:

from highcharts_stock.chart import Chart
from highcharts_stock.options.series.area import LineSeries
import pandas as pd
import datetime as dt

df = pd.DataFrame({
    'date':[
        dt.datetime(2023,1,1), 
        dt.datetime(2023,1,2), 
        dt.datetime(2023,1,3), 
        dt.datetime(2023,1,4)
    ], 
    'closing1': [10,20,15,18], 
    'closing2': [12, 31, 45, 21]
})

line_series_1 = LineSeries.from_pandas(df,
                                       property_map = {
                                           'x': 'date',
                                           'y': 'closing1'
                                       })
line_series_2 = LineSeries.from_pandas(df,
                                       property_map = {
                                           'x': 'date',
                                           'y': 'closing2'
                                       })

my_chart = Chart(container = 'my_container', 
                 options = {
                     'title' : {
                         'text': 'Ticker'
                     },
                     'x_axis' : {
                         'type': 'datetime',
                         'title': {
                             'text': 'Date'
                         }
                     }, 
                     'y_axis' : {
                         'title': {
                             'text': 'Closing Price'
                         }
                     },
                     'series' : [line_series_1, line_series_2]
                 }
                )

当使用.to_js_literal()方法将图表序列化为JS时,它会生成在这个JS Fiddle中显示的JS代码:https://jsfiddle.net/highchartspython/u31Ljrte/

显然,这个示例只是个玩具。数据框中生成的数据完全是虚构的,图表没有任何格式化或显著的交互性。不过,我希望你觉得它有帮助。

同时,感谢你的反馈。我们正在努力改进Highcharts for Python,并会在即将发布的版本中做出改进。

撰写回答