在 jupyter 中向 python highcharts 添加自定义 html 按钮

Adding custom html buttons to python highcharts in jupyter

提问人:Jo-l Collins 提问时间:11/15/2023 更新时间:11/15/2023 访问量:42

问:

我正在尝试在 jupyter 中开发一个 highcharts 图,该图在单击按钮时更新序列值。

一个虚拟的例子

以下是两个独立图表的一些虚拟数据。xAxis 和 y Axis 是相同的。我所做的只是颠倒两个图表之间数据点的顺序。

我的目标是添加一个按钮,单击该按钮时,可以在图表 1 和图表 2 之间交换序列值。

图表一

chart_one_dict = {
 'chart': {'type': 'column'},
 'plotOptions': {'column': {'stacking': 'percent'}},
 'series': [{'data': [50, 50, 50, 50], 'name': 'A'},
            {'data': [35, 35, 35, 35], 'name': 'B'},
            {'data': [15, 15, 15, 15], 'name': 'C'},
            {'data': [7, 7, 7, 7], 'name': 'D'},
            {'data': [3, 3, 3, 3], 'name': 'E'}],
 'title': {'align': 'left', 'text': 'Chart 1'},
 'xAxis': {'categories': ['05/21', '06/21', '07/21', '08/21']},
 'yAxis': {'min': 0,
           'stackLabels': {'enabled': 'true'},
           'title': {'text': 'Counts'}}
 }
options = HighchartsOptions.from_dict(chart_one_dict)
chart = Chart.from_options(options)
chart.display()

enter image description here

图二

chart_two_dict = {
 'chart': {'type': 'column'},
 'plotOptions': {'column': {'stacking': 'percent'}},
 'series': [{'data': [3, 3, 3, 3], 'name': 'A'},
            {'data': [7, 7, 7, 7], 'name': 'B'},
            {'data': [15, 15, 15, 15], 'name': 'C'},
            {'data': [35, 35, 35, 35], 'name': 'D'},
            {'data': [50, 50, 50, 50], 'name': 'E'}],
 'title': {'align': 'left', 'text': 'Chart 2'},
 'xAxis': {'categories': ['05/21', '06/21', '07/21', '08/21']},
 'yAxis': {'min': 0,
           'stackLabels': {'enabled': 'true'},
           'title': {'text': 'Counts'}}
 }
options = HighchartsOptions.from_dict(chart_two_dict)
chart = Chart.from_options(options)
chart.display()

enter image description here

可能的解决方案?

在 highcharts-core 文档中,提到了一个对象(Docs 链接),该对象似乎用于使用自定义 HTML 按钮,但我不知道如何使用它。Bindings

Python Highcharts Jupyter

评论

0赞 Jo-l Collins 11/15/2023
更新:我设法通过子类化 Chart 并在方法的输出中添加一个 <button> 标签来添加一个按钮。我尝试添加一个 <script> 事件侦听器将按钮连接到图表,但这似乎不起作用。_jupyter_container_html
0赞 Chris Modzelewski 11/17/2023
嗨,@Joel - 我是 Chris,Highcharts for Python 工具包的主要开发人员。这是一个有趣的用例 - 我还没有尝试让配置在 Jupyter 上下文中工作,所以这是一个很好的问题。这是应该起作用的东西,您子类化然后插入自定义按钮的方法是合理的。现在,您只需要配置对象(指示分配给按钮的类名等)。不过,配置可能更复杂一些,所以我会测试一下,把它写下来,然后把它作为答案发布在这里BindingsChartBindingsBindings

答: 暂无答案