是否可通过Jupyter中的Markdown链接控制Plotly图表?
可以实现,核心是利用Jupyter前端的JavaScript API调用Python内核执行指定的参数更新代码,配合你已经使用的FigureWidget的双向绑定特性,点击链接后图表会实时更新。
实现方法
方法1:直接在Markdown单元格写链接
直接在Markdown单元格中写入以下内容即可生成可点击的控制链接:
<a href="javascript:IPython.notebook.kernel.execute('figSubs[\"layout\"][\"yaxis1\"].update(range=[0, 1000], autorange=False)')">点击这里将y轴范围设置为0-1000</a> <a href="javascript:IPython.notebook.kernel.execute('figSubs[\"layout\"][\"yaxis1\"].update(range=[950, 1000], autorange=False)')">点击这里将y轴范围设置为950-1000</a>
方法2:用Python代码动态生成链接
如果你需要动态生成控制链接,可以在代码单元格运行以下代码:
from IPython.display import display, HTML control_html = """ <div> <p>轴范围控制:</p> <a href="javascript:IPython.notebook.kernel.execute('figSubs[\"layout\"][\"yaxis1\"].update(range=[0, 1000], autorange=False)')">0-1000</a> <span style="margin:0 10px;">|</span> <a href="javascript:IPython.notebook.kernel.execute('figSubs[\"layout\"][\"yaxis1\"].update(range=[950, 1000], autorange=False)')">950-1000</a> </div> """ display(HTML(control_html))
注意事项
- 请确保先运行Plotly绘图代码,保证
figSubs变量已在内核命名空间中定义,再点击链接 - 该功能仅在交互式Jupyter环境(本地Notebook、Lab)中生效,导出为静态HTML后链接会失效
- 若使用的Jupyter Lab版本不兼容旧版API,可将代码中的
IPython.notebook.kernel.execute替换为jupyter.notebook.kernel.execute即可正常使用
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

